diff options
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | Makeconfig | 6 | ||||
-rw-r--r-- | Makerules | 8 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | aclocal.m4 | 13 | ||||
-rwxr-xr-x | configure | 132 | ||||
-rw-r--r-- | configure.in | 22 | ||||
-rw-r--r-- | elf/rtld-Rules | 4 | ||||
-rw-r--r-- | libidn/configure | 4 | ||||
-rw-r--r-- | manual/install.texi | 4 | ||||
-rw-r--r-- | nptl/sysdeps/pthread/configure | 242 | ||||
-rw-r--r-- | nptl/sysdeps/x86_64/configure | 98 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power7/Makefile | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure | 196 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h | 4 | ||||
-rw-r--r-- | sysdeps/wordsize-64/Makefile | 6 | ||||
-rw-r--r-- | sysdeps/wordsize-64/tst-writev.c | 107 | ||||
-rw-r--r-- | sysdeps/x86_64/elf/configure | 103 |
18 files changed, 621 insertions, 362 deletions
diff --git a/ChangeLog b/ChangeLog index 425ededbb9..292f77a926 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2011-02-16 Ryan S. Arnold <rsa@us.ibm.com> + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: + (INTERNAL_VSYSCALL_NCS INTERNAL_SYSCALL_NCS): Remove erroneous (int) + cast from r3. + * sysdeps/wordsize-64/Makefile: New file. Add tst-writev to + 'tests' variable. + * sysdeps/wordsize-64/tst-writev.c: New file. + +2011-02-15 Ryan S. Arnold <rsa@us.ibm.com> + + * sysdeps/powerpc/powerpc64/power7/Makefile: New file which adds + -mno-vsx to the CFLAGS-rtld.c variable to avoid using VSX registers and + insns in _dl_start to prevent a TOC reference before relocs are + resolved. + +2011-02-15 Ulrich Drepper <drepper@gmail.com> + + [BZ #12469] + * Makeconfig: Remove RANLIB definition. + * Makerules: Don't use RANLIB. + * aclocal.m4: Remove ranlib test. + * configure.in: No need to check for ranlib. + * elf/rtld-Rules: Don't use RANLIB. + 2011-02-16 Samuel Thibault <samuel.thibault@ens-lyon.org> * sysdeps/mach/i386/sysdep.h: Add _MACH_I386_SYSDEP_H inclusion diff --git a/Makeconfig b/Makeconfig index e5cbf646fa..0c4c75aefa 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2003,2004,2005,2006,2007,2008,2009,2010 +# Copyright (C) 1991-2003,2004,2005,2006,2007,2008,2009,2010,2011 # Free Software Foundation, Inc. # This file is part of the GNU C Library. @@ -593,10 +593,6 @@ ifndef LD LD := ld -X endif -ifndef RANLIB -RANLIB = ranlib -endif - # Extra flags to pass to GCC. ifeq ($(all-warnings),yes) +gccwarn := -Wall -Wwrite-strings -Winline -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar diff --git a/Makerules b/Makerules index 9bfe55056d..82ffa1e2b8 100644 --- a/Makerules +++ b/Makerules @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2006,2007,2008,2009,2010 Free Software Foundation, Inc. +# Copyright (C) 1991-2010, 2011 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -805,7 +805,6 @@ endef define do-makelib cd $(common-objdir) && \ $(AR) $(CREATE_ARFLAGS) $(@F) `cat $(patsubst $(common-objpfx)%,%,$^)` -$(RANLIB) $@ endef subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%) subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps)) @@ -827,7 +826,6 @@ define build-extra-lib $(patsubst %/,cd % &&,$(objpfx)) \ $(AR) $(CREATE_ARFLAGS) $(@:$(objpfx)%=%) \ $(patsubst $(objpfx)%,%,$^) -$(RANLIB) $@ endef # Installation. @@ -872,9 +870,6 @@ install: $(installed-libcs) $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) $(make-target-directory) $(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@ -# Running ranlib after installing makes the __.SYMDEF time stamp up to -# date, which avoids messages from some linkers. - $(RANLIB) $@ define do-install-program $(make-target-directory) @@ -1108,7 +1103,6 @@ ifdef install-lib.a $(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \ $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a $(+force) $(do-install) - $(patsubst %,$(RANLIB) $@,$(filter-out $(non-lib.a),$(<F))) endif endif ifdef install-data diff --git a/NEWS b/NEWS index 836160d036..8d961b07bb 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2011-2-2 +GNU C Library NEWS -- history of user-visible changes. 2011-2-17 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc. See the end for copying conditions. @@ -9,7 +9,7 @@ Version 2.14 * The following bugs are resolved with this release: - 11724, 12460 + 11724, 12460, 12469 Version 2.13 diff --git a/aclocal.m4 b/aclocal.m4 index 06adbaaae6..6ad3c87af2 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -57,7 +57,7 @@ else AC_MSG_CHECKING([version of [$]$1]) changequote(<<,>>)dnl ac_prog_version=`<<$>>$1 $3 2>&1 ifelse(<<$4>>,,, - <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)` + <<| sed -n 's/^.*patsubst(<<$4>>,/,\/).*$/\1/p'>>)` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; <<$5>>) @@ -102,17 +102,6 @@ AC_SUBST(AR) OBJDUMP=`$CC -print-prog-name=objdump` AC_SUBST(OBJDUMP) -# ranlib has to be treated a bit differently since it might not exist at all. -ac_ranlib=`$CC -print-prog-name=ranlib` -if test "x$ac_ranlib" = xranlib; then -# This extra check has to happen since gcc simply echos the parameter in -# case it cannot find the value in its own directories. -AC_CHECK_TOOL(RANLIB, ranlib, :) -else - RANLIB=$ac_ranlib -fi -AC_SUBST(RANLIB) - # Determine whether we are using GNU binutils. AC_CACHE_CHECK(whether $AS is GNU as, libc_cv_prog_as_gnu, [LIBC_PROG_FOO_GNU($AS, libc_cv_prog_as_gnu=yes, libc_cv_prog_as_gnu=no)]) diff --git a/configure b/configure index 1d419cf861..fdfa5effc0 100755 --- a/configure +++ b/configure @@ -669,7 +669,6 @@ PWD_P LD AS MIG -RANLIB OBJDUMP AR LN_S @@ -4670,108 +4669,6 @@ AR=`$CC -print-prog-name=ar` OBJDUMP=`$CC -print-prog-name=objdump` -# ranlib has to be treated a bit differently since it might not exist at all. -ac_ranlib=`$CC -print-prog-name=ranlib` -if test "x$ac_ranlib" = xranlib; then -# This extra check has to happen since gcc simply echos the parameter in -# case it cannot find the value in its own directories. -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -else - RANLIB=$ac_ranlib -fi - - # Determine whether we are using GNU binutils. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AS is GNU as" >&5 $as_echo_n "checking whether $AS is GNU as... " >&6; } @@ -5410,33 +5307,8 @@ fi -# check if ranlib is necessary -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ranlib is necessary" >&5 -$as_echo_n "checking whether ranlib is necessary... " >&6; } -if test "${libc_cv_ranlib_necessary+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <<EOF -int a; -char b; -void c(void) {} -EOF -$CC $CFLAGS $CPPFLAGS -c conftest.c -$AR cr conftest.a conftest.o -cp conftest.a conftest2.a -$RANLIB conftest.a -if cmp -s conftest.a conftest2.a; then - libc_cv_ranlib_necessary=no -else - libc_cv_ranlib_necessary=yes -fi -rm -rf conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ranlib_necessary" >&5 -$as_echo "$libc_cv_ranlib_necessary" >&6; } -if test "$libc_cv_ranlib_necessary" = no; then - RANLIB=: -fi +# ranlib is never necessary on Linux and Hurd systems +RANLIB=: # Test if LD_LIBRARY_PATH contains the notation for the current directory # since this would lead to problems installing/building glibc. diff --git a/configure.in b/configure.in index 7e469904ae..e5ff6bdb10 100644 --- a/configure.in +++ b/configure.in @@ -1095,26 +1095,8 @@ fi AC_SUBST(SYSINCLUDES) AC_SUBST(CXX_SYSINCLUDES) -# check if ranlib is necessary -AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl -cat > conftest.c <<EOF -int a; -char b; -void c(void) {} -EOF -$CC $CFLAGS $CPPFLAGS -c conftest.c -$AR cr conftest.a conftest.o -cp conftest.a conftest2.a -$RANLIB conftest.a -if cmp -s conftest.a conftest2.a; then - libc_cv_ranlib_necessary=no -else - libc_cv_ranlib_necessary=yes -fi -rm -rf conftest*]) -if test "$libc_cv_ranlib_necessary" = no; then - RANLIB=: -fi +# ranlib is never necessary on Linux and Hurd systems +RANLIB=: # Test if LD_LIBRARY_PATH contains the notation for the current directory # since this would lead to problems installing/building glibc. diff --git a/elf/rtld-Rules b/elf/rtld-Rules index 10c9452ce0..cd83c85235 100644 --- a/elf/rtld-Rules +++ b/elf/rtld-Rules @@ -1,6 +1,7 @@ # Subroutine makefile for compiling libc modules linked into dynamic linker. -# Copyright (C) 2002,2003,2005,2006,2008,2010 Free Software Foundation, Inc. +# Copyright (C) 2002,2003,2005,2006,2008,2010,2011 +# Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -50,7 +51,6 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\ $(rtld-$(dir)))) @-rm -f $@T $(AR) cq$(verbose) $@T $^ - $(RANLIB) $@T mv -f $@T $@ # Use the verbose option of ar and tar when not running silently. diff --git a/libidn/configure b/libidn/configure index 365e747df2..c6ba2eebc0 100644 --- a/libidn/configure +++ b/libidn/configure @@ -4,7 +4,5 @@ libc_add_on_canonical= libc_add_on_subdirs=. # Get this defined in config.h for main source code to test. -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBIDN 1 -_ACEOF +$as_echo "#define HAVE_LIBIDN 1" >>confdefs.h diff --git a/manual/install.texi b/manual/install.texi index 24b1301ef6..0ef3c3cf04 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -228,8 +228,8 @@ important to use this same @code{CC} value when running @code{configure}, like this: @samp{CC=@var{target}-gcc configure @var{target}}. Set @code{BUILD_CC} to the compiler to use for programs run on the build system as part of compiling the library. You may need to -set @code{AR} and @code{RANLIB} to cross-compiling versions of @code{ar} -and @code{ranlib} if the native tools are not configured to work with +set @code{AR} to cross-compiling versions of @code{ar} +if the native tools are not configured to work with object files for the target you configured for. diff --git a/nptl/sysdeps/pthread/configure b/nptl/sysdeps/pthread/configure index 7768c5c741..3f7dcd61f3 100644 --- a/nptl/sysdeps/pthread/configure +++ b/nptl/sysdeps/pthread/configure @@ -1,39 +1,157 @@ + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link # This file is generated from configure.in by Autoconf. DO NOT EDIT! if test "x$libc_cv_gcc___thread" != xyes; then - { { $as_echo "$as_me:$LINENO: error: compiler support for __thread is required" >&5 -$as_echo "$as_me: error: compiler support for __thread is required" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "compiler support for __thread is required" "$LINENO" 5 fi if test "x${libc_cv_visibility_attribute}" != xyes || test "x${libc_cv_broken_visibility_attribute}" != xno; then - { { $as_echo "$as_me:$LINENO: error: working compiler support for visibility attribute is required" >&5 -$as_echo "$as_me: error: working compiler support for visibility attribute is required" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5 fi if test "x$libc_cv_asm_cfi_directives" != xyes; then case "$base_machine" in i386 | x86_64 | powerpc | s390) - { { $as_echo "$as_me:$LINENO: error: CFI directive support in assembler is required" >&5 -$as_echo "$as_me: error: CFI directive support in assembler is required" >&2;} - { (exit 1); exit 1; }; } ;; + as_fn_error $? "CFI directive support in assembler is required" "$LINENO" 5 ;; *) ;; esac fi -{ $as_echo "$as_me:$LINENO: checking for forced unwind support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for forced unwind support" >&5 $as_echo_n "checking for forced unwind support... " >&6; } -if test "${libc_cv_forced_unwind+set}" = set; then +if test "${libc_cv_forced_unwind+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unwind.h> int @@ -47,58 +165,27 @@ _Unwind_GetCFA (context) return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : libc_cv_forced_unwind=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - libc_cv_forced_unwind=no + libc_cv_forced_unwind=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_forced_unwind" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5 $as_echo "$libc_cv_forced_unwind" >&6; } if test $libc_cv_forced_unwind = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_FORCED_UNWIND 1 -_ACEOF + $as_echo "#define HAVE_FORCED_UNWIND 1" >>confdefs.h old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -fexceptions" - { $as_echo "$as_me:$LINENO: checking for C cleanup handling" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C cleanup handling" >&5 $as_echo_n "checking for C cleanup handling... " >&6; } -if test "${libc_cv_c_cleanup+set}" = set; then +if test "${libc_cv_c_cleanup+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> @@ -113,49 +200,20 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : libc_cv_c_cleanup=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - libc_cv_c_cleanup=no + libc_cv_c_cleanup=no fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_c_cleanup" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_c_cleanup" >&5 $as_echo "$libc_cv_c_cleanup" >&6; } CFLAGS="$old_CFLAGS" if test $libc_cv_c_cleanup = no; then - { { $as_echo "$as_me:$LINENO: error: the compiler must support C cleanup handling" >&5 -$as_echo "$as_me: error: the compiler must support C cleanup handling" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "the compiler must support C cleanup handling" "$LINENO" 5 fi else - { { $as_echo "$as_me:$LINENO: error: forced unwind support is required" >&5 -$as_echo "$as_me: error: forced unwind support is required" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "forced unwind support is required" "$LINENO" 5 fi diff --git a/nptl/sysdeps/x86_64/configure b/nptl/sysdeps/x86_64/configure index ae3ad5448d..4639c222fa 100644 --- a/nptl/sysdeps/x86_64/configure +++ b/nptl/sysdeps/x86_64/configure @@ -1,9 +1,91 @@ + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/i386. -{ $as_echo "$as_me:$LINENO: checking for .cfi_personality and .cfi_lsda pseudo-ops" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .cfi_personality and .cfi_lsda pseudo-ops" >&5 $as_echo_n "checking for .cfi_personality and .cfi_lsda pseudo-ops... " >&6; } -if test "${libc_cv_asm_cfi_personality+set}" = set; then +if test "${libc_cv_asm_cfi_personality+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<EOF @@ -15,11 +97,11 @@ foo: .cfi_endproc EOF if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then libc_cv_asm_cfi_personality=yes else libc_cv_asm_cfi_personality=no @@ -27,10 +109,8 @@ EOF rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_cfi_personality" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_cfi_personality" >&5 $as_echo "$libc_cv_asm_cfi_personality" >&6; } if test x"$libc_cv_asm_cfi_personality" != xyes; then - { { $as_echo "$as_me:$LINENO: error: assembler too old, .cfi_personality support missing" >&5 -$as_echo "$as_me: error: assembler too old, .cfi_personality support missing" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "assembler too old, .cfi_personality support missing" "$LINENO" 5 fi diff --git a/sysdeps/powerpc/powerpc64/power7/Makefile b/sysdeps/powerpc/powerpc64/power7/Makefile new file mode 100644 index 0000000000..b0f45205b9 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power7/Makefile @@ -0,0 +1,5 @@ +ifeq ($(subdir),elf) +# Prevent the use of VSX registers and insns in _dl_start, which under -O3 +# optimization may require a TOC reference before relocations are resolved. +CFLAGS-rtld.c += -mno-vsx +endif diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index 06105c7e69..d05bd13982 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -1,3 +1,102 @@ + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/unix/sysv/linux. @@ -11,9 +110,9 @@ if test -n "$sysheaders"; then fi -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then +if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -24,7 +123,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue @@ -44,7 +143,7 @@ case `"$ac_path_GREP" --version 2>&1` in $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -59,26 +158,24 @@ esac $ac_path_GREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then +if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -92,7 +189,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do + for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue @@ -112,7 +209,7 @@ case `"$ac_path_EGREP" --version 2>&1` in $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" @@ -127,12 +224,10 @@ esac $ac_path_EGREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -140,21 +235,17 @@ fi fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:$LINENO: checking installed Linux kernel header files" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking installed Linux kernel header files" >&5 $as_echo_n "checking installed Linux kernel header files... " >&6; } -if test "${libc_cv_linux2010+set}" = set; then +if test "${libc_cv_linux2010+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <linux/version.h> #if !defined LINUX_VERSION_CODE || LINUX_VERSION_CODE < (2 *65536+ 0 *256+ 10) /* 2.0.10 */ @@ -162,7 +253,7 @@ eat flaming death #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "eat flaming death" >/dev/null 2>&1; then + $EGREP "eat flaming death" >/dev/null 2>&1; then : libc_cv_linux2010='TOO OLD!' else libc_cv_linux2010='2.0.10 or later' @@ -170,26 +261,17 @@ fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_linux2010" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_linux2010" >&5 $as_echo "$libc_cv_linux2010" >&6; } if test "$libc_cv_linux2010" != '2.0.10 or later'; then - { { $as_echo "$as_me:$LINENO: error: GNU libc requires kernel header files from + as_fn_error $? "GNU libc requires kernel header files from Linux 2.0.10 or later to be installed before configuring. The kernel header files are found usually in /usr/include/asm and /usr/include/linux; make sure these directories use files from Linux 2.0.10 or later. This check uses <linux/version.h>, so make sure that file was built correctly when installing the kernel header files. To use kernel headers not from /usr/include/linux, use the -configure option --with-headers." >&5 -$as_echo "$as_me: error: GNU libc requires kernel header files from -Linux 2.0.10 or later to be installed before configuring. -The kernel header files are found usually in /usr/include/asm and -/usr/include/linux; make sure these directories use files from -Linux 2.0.10 or later. This check uses <linux/version.h>, so -make sure that file was built correctly when installing the kernel header -files. To use kernel headers not from /usr/include/linux, use the -configure option --with-headers." >&2;} - { (exit 1); exit 1; }; } +configure option --with-headers." "$LINENO" 5 fi # If the user gave a minimal version number test whether the available @@ -263,7 +345,7 @@ if test -n "$minimum_kernel"; then arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)) if test $user_version -lt $arch_version; then - { $as_echo "$as_me:$LINENO: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&5 $as_echo "$as_me: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&2;} minimum_kernel=$arch_minimum_kernel fi @@ -274,15 +356,11 @@ else fi if test -n "$minimum_kernel"; then - { $as_echo "$as_me:$LINENO: checking for kernel header at least $minimum_kernel" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kernel header at least $minimum_kernel" >&5 $as_echo_n "checking for kernel header at least $minimum_kernel... " >&6; } decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <linux/version.h> #if LINUX_VERSION_CODE < $decnum @@ -290,14 +368,14 @@ eat flaming death #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "eat flaming death" >/dev/null 2>&1; then + $EGREP "eat flaming death" >/dev/null 2>&1; then : libc_minimum_kernel='too old!' else libc_minimum_kernel=ok fi rm -f conftest* - { $as_echo "$as_me:$LINENO: result: $libc_minimum_kernel" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_minimum_kernel" >&5 $as_echo "$libc_minimum_kernel" >&6; } if test "$libc_minimum_kernel" = ok; then cat >>confdefs.h <<_ACEOF @@ -309,11 +387,8 @@ _ACEOF _ACEOF else - { { $as_echo "$as_me:$LINENO: error: *** The available kernel headers are older than the requested -*** compatible kernel version" >&5 -$as_echo "$as_me: error: *** The available kernel headers are older than the requested -*** compatible kernel version" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "*** The available kernel headers are older than the requested +*** compatible kernel version" "$LINENO" 5 fi fi @@ -441,7 +516,7 @@ if test $host = $build; then else ac_prefix=$ac_default_prefix fi - { $as_echo "$as_me:$LINENO: checking for symlinks in ${ac_prefix}/include" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlinks in ${ac_prefix}/include" >&5 $as_echo_n "checking for symlinks in ${ac_prefix}/include... " >&6; } ac_message= if test -L ${ac_prefix}/include/net; then @@ -453,23 +528,16 @@ $as_echo_n "checking for symlinks in ${ac_prefix}/include... " >&6; } ${ac_prefix}/include/scsi is a symlink" fi if test -n "$ac_message"; then - { { $as_echo "$as_me:$LINENO: error: $ac_message + as_fn_error $? "$ac_message \`make install' will destroy the target of the link(s). Delete the links and re-run configure, or better still, move the entire -${ac_prefix}/include directory out of the way." >&5 -$as_echo "$as_me: error: $ac_message -\`make install' will destroy the target of the link(s). -Delete the links and re-run configure, or better still, move the entire -${ac_prefix}/include directory out of the way." >&2;} - { (exit 1); exit 1; }; } +${ac_prefix}/include directory out of the way." "$LINENO" 5 else - { $as_echo "$as_me:$LINENO: result: ok" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi fi # We have inlined syscalls. -cat >>confdefs.h <<\_ACEOF -#define HAVE_INLINED_SYSCALLS 1 -_ACEOF +$as_echo "#define HAVE_INLINED_SYSCALLS 1" >>confdefs.h diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h index aab4b721c0..e714c4c534 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h @@ -172,7 +172,7 @@ : "r9", "r10", "r11", "r12", \ "cr0", "ctr", "lr", "memory"); \ err = (long int) r0; \ - (int) r3; \ + r3; \ }) #undef INLINE_SYSCALL @@ -219,7 +219,7 @@ : "r9", "r10", "r11", "r12", \ "cr0", "ctr", "memory"); \ err = r0; \ - (int) r3; \ + r3; \ }) #define INTERNAL_SYSCALL(name, err, nr, args...) \ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, args) diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile new file mode 100644 index 0000000000..9903f51f9a --- /dev/null +++ b/sysdeps/wordsize-64/Makefile @@ -0,0 +1,6 @@ +ifeq ($(subdir),misc) +tests += tst-writev + +# Time enough for a large writev syscall to complete. +tst-writev-ENV = TIMEOUTFACTOR="10" +endif diff --git a/sysdeps/wordsize-64/tst-writev.c b/sysdeps/wordsize-64/tst-writev.c new file mode 100644 index 0000000000..6e4788612c --- /dev/null +++ b/sysdeps/wordsize-64/tst-writev.c @@ -0,0 +1,107 @@ +/* Copyright (C) 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ryan S. Arnold <rsa@us.ibm.com>, 2011. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <fcntl.h> +#include <paths.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/uio.h> + + +/* The purpose of this test is to verify that the INTERNAL_[V]SYSCALL_NCS + macros on 64-bit platforms don't cast the return type to (int) which would + erroneously sign extend the return value should the high bit of the bottom + half of the word be '1'. */ + +#if 0 +/* Used to test the non power-of-2 code path. */ +#undef IOV_MAX +#define IOV_MAX 1000 +#endif + +/* writev() should report that it has written EXPECTED number of bytes. */ +#define EXPECTED ((size_t) INT32_MAX + 1) + +static int +do_test (void) +{ + struct iovec iv[IOV_MAX]; + /* POSIX doesn't guarantee that IOV_MAX is pow of 2 but we're optimistic. */ + size_t bufsz = EXPECTED / IOV_MAX; + size_t bufrem = EXPECTED % IOV_MAX; + + /* If there's a remainder then IOV_MAX probably isn't a power of 2 and we + need to make bufsz bigger so that the last iovec, iv[IOV_MAX-1], is free + for the remainder. */ + if (bufrem) + { + bufsz = bufsz + 1; + bufrem = EXPECTED - (bufsz * (IOV_MAX - 1)); + } + + /* We writev to /dev/null since we're just testing writev's return value. */ + int fd = open (_PATH_DEVNULL, O_WRONLY); + if (fd == -1) + { + printf ("Unable to open /dev/null for writing.\n"); + return -1; + } + + iv[0].iov_base = malloc (bufsz); + if (iv[0].iov_base == NULL) + { + printf ("malloc (%zu) failed.\n", bufsz); + close (fd); + return -1; + } + iv[0].iov_len = bufsz; + + /* We optimistically presume that there isn't a remainder and set all iovec + instances to the same base and len as the first instance. */ + for (int i = 1; i < IOV_MAX; i++) + { + /* We don't care what the data is so reuse the allocation from iv[0]; */ + iv[i].iov_base = iv[0].iov_base; + iv[i].iov_len = iv[0].iov_len; + } + + /* If there is a remainder then we correct the last iov_len. */ + if (bufrem) + iv[IOV_MAX - 1].iov_len = bufrem; + + /* Write junk to /dev/null with the writev syscall in order to get a return + of INT32_MAX+1 bytes to verify that the INTERNAL_SYSCALL wrappers aren't + mangling the result if the signbit of a 32-bit number is set. */ + ssize_t ret = writev (fd, iv, IOV_MAX); + + free (iv[0].iov_base); + close (fd); + + if (ret != (ssize_t) EXPECTED) + { + printf ("writev() return value: %zd != EXPECTED: %zd\n", ret, EXPECTED); + return 1; + } + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/sysdeps/x86_64/elf/configure b/sysdeps/x86_64/elf/configure index f722b9e600..99241e70bd 100644 --- a/sysdeps/x86_64/elf/configure +++ b/sysdeps/x86_64/elf/configure @@ -1,11 +1,93 @@ + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/x86_64/elf. if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. -{ $as_echo "$as_me:$LINENO: checking for x86-64 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86-64 TLS support" >&5 $as_echo_n "checking for x86-64 TLS support... " >&6; } -if test "${libc_cv_x86_64_tls+set}" = set; then +if test "${libc_cv_x86_64_tls+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF @@ -22,27 +104,24 @@ baz: leaq bar@TLSLD(%rip), %rdi movq $bar@TPOFF, %rdx EOF if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then libc_cv_x86_64_tls=yes else libc_cv_x86_64_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_x86_64_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_64_tls" >&5 $as_echo "$libc_cv_x86_64_tls" >&6; } if test $libc_cv_x86_64_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF + $as_echo "#define HAVE_TLS_SUPPORT 1" >>confdefs.h fi fi -cat >>confdefs.h <<\_ACEOF -#define PI_STATIC_AND_HIDDEN 1 -_ACEOF +$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h + |