diff options
Diffstat (limited to 'source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch')
-rw-r--r-- | source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch | 1212 |
1 files changed, 1212 insertions, 0 deletions
diff --git a/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch b/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch new file mode 100644 index 00000000..9b58674c --- /dev/null +++ b/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch @@ -0,0 +1,1212 @@ +From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001 +From: H.J. Lu <hongjiu.lu@intel.com> +Date: Fri, 24 Dec 2010 20:14:37 -0500 +Subject: [PATCH] Remove `.ctors' and `.dtors' output sections + +--- + ChangeLog | 15 ++ + config.h.in | 3 + + configure | 334 +++++++++++++++++--------------- + configure.in | 2 + + elf/sofini.c | 2 + + elf/soinit.c | 2 + + sysdeps/i386/init-first.c | 2 + + sysdeps/mach/hurd/i386/init-first.c | 2 +- + sysdeps/mach/hurd/powerpc/init-first.c | 2 +- + sysdeps/sh/init-first.c | 2 + + sysdeps/unix/sysv/linux/init-first.c | 2 +- + 11 files changed, 209 insertions(+), 159 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 958c76a..497de67 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,18 @@ ++2010-12-15 H.J. Lu <hongjiu.lu@intel.com> ++ ++ * config.h.in (NO_CTORS_DTORS_SECTIONS): Define. ++ * configure.in: Define NO_CTORS_DTORS_SECTIONS if linker ++ script has SORT_BY_INIT_PRIORITY. ++ * elf/sofini.c: Remove `.ctors' and `.dtors' sections if ++ NO_CTORS_DTORS_SECTIONS is defined. ++ * elf/soinit.c: Likewise. ++ * sysdeps/i386/init-first.c: Don't call __libc_global_ctors if ++ NO_CTORS_DTORS_SECTIONS is defined. ++ * sysdeps/mach/hurd/i386/init-first.c: Likewise. ++ * sysdeps/mach/hurd/powerpc/init-first.c: Likewise. ++ * sysdeps/sh/init-first.c: Likewise. ++ * sysdeps/unix/sysv/linux/init-first.c: Likewise. ++ + 2010-12-24 Ulrich Drepper <drepper@gmail.com> + + * stdio-common/vfprintf.c (vfprintf): If printf handlers are installed +diff --git a/config.h.in b/config.h.in +index 18bf01a..9e797eb 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -201,6 +201,9 @@ + /* Define if multi-arch DSOs should be generated. */ + #undef USE_MULTIARCH + ++/* Define if `.ctors' and `.dtors' sections shouldn't be used. */ ++#undef NO_CTORS_DTORS_SECTIONS ++ + /* + */ + +diff --git a/configure b/configure +index eae35ba..823f15e 100755 +--- a/configure ++++ b/configure +@@ -1,14 +1,14 @@ + #! /bin/sh + # From configure.in CVSid. + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.65 for GNU C Library (see version.h). ++# Generated by GNU Autoconf 2.66 for GNU C Library (see version.h). + # + # Report bugs to <glibc>. + # + # + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +-# Inc. ++# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software ++# Foundation, Inc. + # + # + # This configure script is free software; the Free Software Foundation +@@ -319,7 +319,7 @@ $as_echo X"$as_dir" | + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" +- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + + } # as_fn_mkdir_p +@@ -359,19 +359,19 @@ else + fi # as_fn_arith + + +-# as_fn_error ERROR [LINENO LOG_FD] +-# --------------------------------- ++# as_fn_error STATUS ERROR [LINENO LOG_FD] ++# ---------------------------------------- + # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are + # provided, also output the error to LOG_FD, referencing LINENO. Then exit the +-# script with status $?, using 1 if that was 0. ++# script with STATUS, using 1 if that was 0. + as_fn_error () + { +- as_status=$?; test $as_status -eq 0 && as_status=1 +- if test "$3"; then +- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 ++ as_status=$1; test $as_status -eq 0 && as_status=1 ++ if test "$4"; then ++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi +- $as_echo "$as_me: error: $1" >&2 ++ $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -533,7 +533,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null + exec 6>&1 + + # Name of the host. +-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, ++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, + # so uname gets run too. + ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +@@ -907,7 +907,7 @@ do + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error "invalid feature name: $ac_useropt" ++ as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in +@@ -933,7 +933,7 @@ do + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error "invalid feature name: $ac_useropt" ++ as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in +@@ -1137,7 +1137,7 @@ do + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error "invalid package name: $ac_useropt" ++ as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in +@@ -1153,7 +1153,7 @@ do + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error "invalid package name: $ac_useropt" ++ as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in +@@ -1183,8 +1183,8 @@ do + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + +- -*) as_fn_error "unrecognized option: \`$ac_option' +-Try \`$0 --help' for more information." ++ -*) as_fn_error $? "unrecognized option: \`$ac_option' ++Try \`$0 --help' for more information" + ;; + + *=*) +@@ -1192,7 +1192,7 @@ Try \`$0 --help' for more information." + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) +- as_fn_error "invalid variable name: \`$ac_envvar'" ;; ++ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; +@@ -1210,13 +1210,13 @@ done + + if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` +- as_fn_error "missing argument to $ac_option" ++ as_fn_error $? "missing argument to $ac_option" + fi + + if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; +- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; ++ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac + fi +@@ -1239,7 +1239,7 @@ do + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac +- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" ++ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" + done + + # There might be people who depend on the old broken behavior: `$host' +@@ -1253,8 +1253,8 @@ target=$target_alias + if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe +- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. +- If a cross compiler is detected then cross compile mode will be used." >&2 ++ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. ++ If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +@@ -1269,9 +1269,9 @@ test "$silent" = yes && exec 6>/dev/null + ac_pwd=`pwd` && test -n "$ac_pwd" && + ac_ls_di=`ls -di .` && + ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || +- as_fn_error "working directory cannot be determined" ++ as_fn_error $? "working directory cannot be determined" + test "X$ac_ls_di" = "X$ac_pwd_ls_di" || +- as_fn_error "pwd does not report name of working directory" ++ as_fn_error $? "pwd does not report name of working directory" + + + # Find the source files, if location was not specified. +@@ -1310,11 +1310,11 @@ else + fi + if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." +- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" ++ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" + fi + ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" + ac_abs_confdir=`( +- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" ++ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` + # When building in place, set srcdir=. + if test "$ac_abs_confdir" = "$ac_pwd"; then +@@ -1354,7 +1354,7 @@ Configuration: + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit +- -q, --quiet, --silent do not print \`checking...' messages ++ -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files +@@ -1544,9 +1544,9 @@ test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF + GNU C Library configure (see version.h) +-generated by GNU Autoconf 2.65 ++generated by GNU Autoconf 2.66 + +-Copyright (C) 2009 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1945,7 +1945,7 @@ ac_fn_c_check_header_compile () + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + $as_echo_n "checking for $2... " >&6; } +-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : ++if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -1971,7 +1971,7 @@ This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + + It was created by GNU C Library $as_me (see version.h), which was +-generated by GNU Autoconf 2.65. Invocation command line was ++generated by GNU Autoconf 2.66. Invocation command line was + + $ $0 $@ + +@@ -2081,11 +2081,9 @@ trap 'exit_status=$? + { + echo + +- cat <<\_ASBOX +-## ---------------- ## ++ $as_echo "## ---------------- ## + ## Cache variables. ## +-## ---------------- ## +-_ASBOX ++## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, + ( +@@ -2119,11 +2117,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + ) + echo + +- cat <<\_ASBOX +-## ----------------- ## ++ $as_echo "## ----------------- ## + ## Output variables. ## +-## ----------------- ## +-_ASBOX ++## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do +@@ -2136,11 +2132,9 @@ _ASBOX + echo + + if test -n "$ac_subst_files"; then +- cat <<\_ASBOX +-## ------------------- ## ++ $as_echo "## ------------------- ## + ## File substitutions. ## +-## ------------------- ## +-_ASBOX ++## ------------------- ##" + echo + for ac_var in $ac_subst_files + do +@@ -2154,11 +2148,9 @@ _ASBOX + fi + + if test -s confdefs.h; then +- cat <<\_ASBOX +-## ----------- ## ++ $as_echo "## ----------- ## + ## confdefs.h. ## +-## ----------- ## +-_ASBOX ++## ----------- ##" + echo + cat confdefs.h + echo +@@ -2213,7 +2205,12 @@ _ACEOF + ac_site_file1=NONE + ac_site_file2=NONE + if test -n "$CONFIG_SITE"; then +- ac_site_file1=$CONFIG_SITE ++ # We do not want a PATH search for config.site. ++ case $CONFIG_SITE in #(( ++ -*) ac_site_file1=./$CONFIG_SITE;; ++ */*) ac_site_file1=$CONFIG_SITE;; ++ *) ac_site_file1=./$CONFIG_SITE;; ++ esac + elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +@@ -2228,7 +2225,11 @@ do + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 + $as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 +- . "$ac_site_file" ++ . "$ac_site_file" \ ++ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "failed to load site script $ac_site_file ++See \`config.log' for more details" "$LINENO" 5; } + fi + done + +@@ -2304,7 +2305,7 @@ if $ac_cache_corrupted; then + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 + $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} +- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 ++ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + fi + ## -------------------- ## + ## Main body of script. ## +@@ -2322,16 +2323,22 @@ ac_config_headers="$ac_config_headers config.h" + + ac_aux_dir= + for ac_dir in scripts "$srcdir"/scripts; do +- for ac_t in install-sh install.sh shtool; do +- if test -f "$ac_dir/$ac_t"; then +- ac_aux_dir=$ac_dir +- ac_install_sh="$ac_aux_dir/$ac_t -c" +- break 2 +- fi +- done ++ if test -f "$ac_dir/install-sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f "$ac_dir/install.sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ elif test -f "$ac_dir/shtool"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/shtool install -c" ++ break ++ fi + done + if test -z "$ac_aux_dir"; then +- as_fn_error "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5 ++ as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5 + fi + + # These three variables are undocumented and unsupported, +@@ -2351,7 +2358,7 @@ subdirs="$subdirs " + + # Make sure we can run config.sub. + $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || +- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 ++ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 + $as_echo_n "checking build system type... " >&6; } +@@ -2362,16 +2369,16 @@ else + test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + test "x$ac_build_alias" = x && +- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ++ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 + ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || +- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 ++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 + $as_echo "$ac_cv_build" >&6; } + case $ac_cv_build in + *-*-*) ;; +-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; ++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; + esac + build=$ac_cv_build + ac_save_IFS=$IFS; IFS='-' +@@ -2396,7 +2403,7 @@ else + ac_cv_host=$ac_cv_build + else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || +- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 ++ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + fi + + fi +@@ -2404,7 +2411,7 @@ fi + $as_echo "$ac_cv_host" >&6; } + case $ac_cv_host in + *-*-*) ;; +-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; ++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; + esac + host=$ac_cv_host + ac_save_IFS=$IFS; IFS='-' +@@ -2721,8 +2728,8 @@ fi + + test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error "no acceptable C compiler found in \$PATH +-See \`config.log' for more details." "$LINENO" 5; } ++as_fn_error $? "no acceptable C compiler found in \$PATH ++See \`config.log' for more details" "$LINENO" 5; } + + # Provide some information about the compiler. + $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +@@ -2792,8 +2799,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 + + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error "cannot compute suffix of object files: cannot compile +-See \`config.log' for more details." "$LINENO" 5; } ++as_fn_error $? "cannot compute suffix of object files: cannot compile ++See \`config.log' for more details" "$LINENO" 5; } + fi + rm -f conftest.$ac_cv_objext conftest.$ac_ext + fi +@@ -3185,8 +3192,8 @@ if $ac_preproc_ok; then : + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error "C preprocessor \"$CPP\" fails sanity check +-See \`config.log' for more details." "$LINENO" 5; } ++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details" "$LINENO" 5; } + fi + + ac_ext=c +@@ -3455,7 +3462,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then +- as_fn_error "you must configure in a separate build directory" "$LINENO" 5 ++ as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5 + fi + + # This will get text that should go into config.make. +@@ -3767,7 +3774,7 @@ fi + if test x$nss_crypt = xyes; then + nss_includes=-I$(nss-config --includedir 2>/dev/null) + if test $? -ne 0; then +- as_fn_error "cannot find include directory with nss-config" "$LINENO" 5 ++ as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5 + fi + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $nss_includes" +@@ -3782,7 +3789,7 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + libc_cv_nss_crypt=yes + else +- as_fn_error " ++ as_fn_error $? " + cannot find NSS headers with lowlevel hash function interfaces" "$LINENO" 5 + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +@@ -3804,7 +3811,7 @@ _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + libc_cv_nss_crypt=yes + else +- as_fn_error " ++ as_fn_error $? " + cannot link program using lowlevel NSS hash functions" "$LINENO" 5 + fi + rm -f core conftest.err conftest.$ac_objext \ +@@ -3880,7 +3887,7 @@ submachine= + # Check whether --with-cpu was given. + if test "${with_cpu+set}" = set; then : + withval=$with_cpu; case "$withval" in +- yes|'') as_fn_error "--with-cpu requires an argument" "$LINENO" 5 ;; ++ yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;; + no) ;; + *) submachine="$withval" ;; + esac +@@ -3913,14 +3920,14 @@ if test x"$add_ons" != x; then + # Some sanity checks + case "$f" in + crypt) +- as_fn_error " ++ as_fn_error $? " + *** It seems that you're using an old \`crypt' add-on. crypt is now + *** part of glibc and using the old add-on will not work with this + *** release. Start again with fresh sources and without the old + *** \`crypt' add-on." "$LINENO" 5 + ;; + localedata) +- as_fn_error " ++ as_fn_error $? " + *** It seems that you're using an old \`localedata' add-on. localedata + *** is now part of glibc and using the old add-on will not work with + *** this release. Start again with fresh sources and without the old +@@ -3947,7 +3954,7 @@ if test x"$add_ons" != x; then + if test -d "$libc_add_on"; then + libc_add_on="`pwd`/$libc_add_on" + else +- as_fn_error "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5 ++ as_fn_error $? "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5 + fi + } + libc_add_on_srcdir=$srcdir/$libc_add_on +@@ -3966,7 +3973,7 @@ $as_echo "$as_me: running configure fragment for add-on $libc_add_on" >&6;} + test -z "$libc_add_on" || { + configured_add_ons="$configured_add_ons $libc_add_on" + if test "x$libc_add_on_canonical" = xunknown; then +- as_fn_error "fragment must set \$libc_add_on_canonical" "$LINENO" 5 ++ as_fn_error $? "fragment must set \$libc_add_on_canonical" "$LINENO" 5 + fi + for d in $libc_add_on_subdirs; do + case "$libc_add_on" in +@@ -3991,13 +3998,13 @@ $d-srcdir = $subdir_srcdir" + done + for d in $libc_add_on_config_subdirs; do + case "$d" in +- /*) as_fn_error "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;; ++ /*) as_fn_error $? "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;; + esac + if test ! -d "$libc_add_on_srcdir/$d"; then +- as_fn_error "fragment wants to configure missing directory $d" "$LINENO" 5 ++ as_fn_error $? "fragment wants to configure missing directory $d" "$LINENO" 5 + fi + case "$libc_add_on" in +- /*) as_fn_error "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;; ++ /*) as_fn_error $? "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;; + esac + subdirs="$subdirs $libc_add_on/$d" + done +@@ -4174,7 +4181,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_global_directive" >&5 + $as_echo "$libc_cv_asm_global_directive" >&6; } + if test $libc_cv_asm_global_directive = UNKNOWN; then +- as_fn_error "cannot determine asm global directive" "$LINENO" 5 ++ as_fn_error $? "cannot determine asm global directive" "$LINENO" 5 + else + cat >>confdefs.h <<_ACEOF + #define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} +@@ -4220,7 +4227,7 @@ fi + + if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then + if test x"$multi_arch" = xyes; then +- as_fn_error "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5 ++ as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5 + else + multi_arch=no + fi +@@ -4359,13 +4366,13 @@ fi + + + if test -z "$os_used" && test "$os" != none; then +- as_fn_error "Operating system $os is not supported." "$LINENO" 5 ++ as_fn_error $? "Operating system $os is not supported." "$LINENO" 5 + fi + if test -z "$machine_used" && test "$machine" != none; then +- as_fn_error "The $machine is not supported." "$LINENO" 5 ++ as_fn_error $? "The $machine is not supported." "$LINENO" 5 + fi + if test -z "$submachine_used" && test -n "$submachine"; then +- as_fn_error "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5 ++ as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5 + fi + + +@@ -4492,7 +4499,7 @@ for add_on in $add_ons; do + case "$configured_add_ons " in + *" $add_on "*) ;; + *|'') +- as_fn_error "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5 ++ as_fn_error $? "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5 + ;; + esac + continue +@@ -4978,7 +4985,7 @@ fi + + + if test "$PWD_P" = no; then +- as_fn_error "*** A pwd binary could not be found." "$LINENO" 5 ++ as_fn_error $? "*** A pwd binary could not be found." "$LINENO" 5 + fi + + # These programs are version sensitive. +@@ -5367,7 +5374,7 @@ if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then + aux_missing="$aux_missing autoconf" + fi + +-test -n "$critic_missing" && as_fn_error " ++test -n "$critic_missing" && as_fn_error $? " + *** These critical programs are missing or too old:$critic_missing + *** Check the INSTALL file for required versions." "$LINENO" 5 + +@@ -5450,7 +5457,7 @@ esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5 + $as_echo "$ld_library_path_setting" >&6; } + if test "$ld_library_path_setting" != "ok"; then +-as_fn_error " ++as_fn_error $? " + *** LD_LIBRARY_PATH shouldn't contain the current directory when + *** building glibc. Please change the environment variable + *** and run configure again." "$LINENO" 5 +@@ -6053,7 +6060,7 @@ EOF + test $ac_status = 0; }; }; then + libc_cv_asm_protected_directive=yes + else +- as_fn_error "assembler support for symbol visibility is required" "$LINENO" 5 ++ as_fn_error $? "assembler support for symbol visibility is required" "$LINENO" 5 + fi + rm -f conftest* + fi +@@ -6089,7 +6096,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_visibility_attribute" >&5 + $as_echo "$libc_cv_visibility_attribute" >&6; } + if test $libc_cv_visibility_attribute != yes; then +- as_fn_error "compiler support for visibility attribute is required" "$LINENO" 5 ++ as_fn_error $? "compiler support for visibility attribute is required" "$LINENO" 5 + fi + fi + +@@ -6121,7 +6128,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_visibility_attribute" >&5 + $as_echo "$libc_cv_broken_visibility_attribute" >&6; } + if test $libc_cv_broken_visibility_attribute = yes; then +- as_fn_error "working compiler support for visibility attribute is required" "$LINENO" 5 ++ as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5 + fi + fi + +@@ -6156,7 +6163,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5 + $as_echo "$libc_cv_broken_alias_attribute" >&6; } + if test $libc_cv_broken_alias_attribute = yes; then +- as_fn_error "working alias attribute support required" "$LINENO" 5 ++ as_fn_error $? "working alias attribute support required" "$LINENO" 5 + fi + + if test $libc_cv_visibility_attribute = yes; then +@@ -6214,7 +6221,15 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5 + $as_echo "$libc_cv_initfini_array" >&6; } + if test $libc_cv_initfini_array != yes; then +- as_fn_error "Need linker with .init_array/.fini_array support." "$LINENO" 5 ++ as_fn_error $? "Need linker with .init_array/.fini_array support." "$LINENO" 5 ++ elif { ac_try='${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then ++ $as_echo "#define NO_CTORS_DTORS_SECTIONS 1" >>confdefs.h ++ + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5 +@@ -6262,7 +6277,7 @@ EOF + then + libc_cv_z_nodelete=yes + else +- as_fn_error "linker with -z nodelete support required" "$LINENO" 5 ++ as_fn_error $? "linker with -z nodelete support required" "$LINENO" 5 + fi + rm -f conftest* + fi +@@ -6289,7 +6304,7 @@ EOF + then + libc_cv_z_nodlopen=yes + else +- as_fn_error "linker with -z nodlopen support required" "$LINENO" 5 ++ as_fn_error $? "linker with -z nodlopen support required" "$LINENO" 5 + fi + rm -f conftest* + fi +@@ -6316,7 +6331,7 @@ EOF + then + libc_cv_z_initfirst=yes + else +- as_fn_error "linker with -z initfirst support required" "$LINENO" 5 ++ as_fn_error $? "linker with -z initfirst support required" "$LINENO" 5 + fi + rm -f conftest* + fi +@@ -6352,7 +6367,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_relro" >&5 + $as_echo "$libc_cv_z_relro" >&6; } + if test "$libc_cv_z_relro" = no; then +- as_fn_error "linker with -z relro support required" "$LINENO" 5 ++ as_fn_error $? "linker with -z relro support required" "$LINENO" 5 + fi + ;; + *) ;; +@@ -7202,7 +7217,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5 + $as_echo "$libc_cv_cc_submachine" >&6; } + if test "x$libc_cv_cc_submachine" = xno; then +- as_fn_error "${CC-cc} does not support $submachine" "$LINENO" 5 ++ as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5 + fi + fi + +@@ -7322,7 +7337,7 @@ $as_echo "$have_selinux" >&6; } + + if test x$with_selinux = xyes ; then + if test x$have_selinux = xno ; then +- as_fn_error "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5 ++ as_fn_error $? "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5 + fi + fi + fi +@@ -7486,7 +7501,7 @@ esac + done + IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then +- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 ++ 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 +@@ -7552,7 +7567,7 @@ esac + done + IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then +- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 ++ 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 +@@ -7684,8 +7699,7 @@ do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` + ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default + " +-eval as_val=\$$as_ac_Header +- if test "x$as_val" = x""yes; then : ++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -7710,9 +7724,8 @@ else + if test "$ac_cv_type_long_double" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-{ as_fn_set_status 77 +-as_fn_error "cannot compute sizeof (long double) +-See \`config.log' for more details." "$LINENO" 5; }; } ++as_fn_error 77 "cannot compute sizeof (long double) ++See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long_double=0 + fi +@@ -7943,6 +7956,7 @@ DEFS=-DHAVE_CONFIG_H + + ac_libobjs= + ac_ltlibobjs= ++U= + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' +@@ -8104,19 +8118,19 @@ export LANGUAGE + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +-# as_fn_error ERROR [LINENO LOG_FD] +-# --------------------------------- ++# as_fn_error STATUS ERROR [LINENO LOG_FD] ++# ---------------------------------------- + # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are + # provided, also output the error to LOG_FD, referencing LINENO. Then exit the +-# script with status $?, using 1 if that was 0. ++# script with STATUS, using 1 if that was 0. + as_fn_error () + { +- as_status=$?; test $as_status -eq 0 && as_status=1 +- if test "$3"; then +- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 ++ as_status=$1; test $as_status -eq 0 && as_status=1 ++ if test "$4"; then ++ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi +- $as_echo "$as_me: error: $1" >&2 ++ $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -8312,7 +8326,7 @@ $as_echo X"$as_dir" | + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" +- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" ++ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + + } # as_fn_mkdir_p +@@ -8366,7 +8380,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + # values after options handling. + ac_log=" + This file was extended by GNU C Library $as_me (see version.h), which was +-generated by GNU Autoconf 2.65. Invocation command line was ++generated by GNU Autoconf 2.66. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -8434,10 +8448,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ + GNU C Library config.status (see version.h) +-configured by $0, generated by GNU Autoconf 2.65, ++configured by $0, generated by GNU Autoconf 2.66, + with options \\"\$ac_cs_config\\" + +-Copyright (C) 2009 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + +@@ -8492,7 +8506,7 @@ do + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header +- as_fn_error "ambiguous option: \`$1' ++ as_fn_error $? "ambiguous option: \`$1' + Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; +@@ -8501,7 +8515,7 @@ Try \`$0 --help' for more information.";; + ac_cs_silent=: ;; + + # This is an error. +- -*) as_fn_error "unrecognized option: \`$1' ++ -*) as_fn_error $? "unrecognized option: \`$1' + Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" +@@ -8560,7 +8574,7 @@ do + "${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + +- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; ++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac + done + +@@ -8598,7 +8612,7 @@ $debug || + { + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 ++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 + + # Set up the scripts for CONFIG_FILES section. + # No need to generate them if there are no CONFIG_FILES. +@@ -8615,7 +8629,7 @@ if test "x$ac_cr" = x; then + fi + ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` + if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then +- ac_cs_awk_cr='\r' ++ ac_cs_awk_cr='\\r' + else + ac_cs_awk_cr=$ac_cr + fi +@@ -8629,18 +8643,18 @@ _ACEOF + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" + } >conf$$subs.sh || +- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 +-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` + ac_delim='%!_!# ' + for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || +- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then +- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ++ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +@@ -8729,20 +8743,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + else + cat + fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +- || as_fn_error "could not setup config files machinery" "$LINENO" 5 ++ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 + _ACEOF + +-# VPATH may cause trouble with some makes, so we remove $(srcdir), +-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and ++# VPATH may cause trouble with some makes, so we remove sole $(srcdir), ++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and + # trailing colons and then remove the whole line if VPATH becomes empty + # (actually we leave an empty line to preserve line numbers). + if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=/{ +-s/:*\$(srcdir):*/:/ +-s/:*\${srcdir}:*/:/ +-s/:*@srcdir@:*/:/ +-s/^\([^=]*=[ ]*\):*/\1/ ++ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ ++h ++s/// ++s/^/:/ ++s/[ ]*$/:/ ++s/:\$(srcdir):/:/g ++s/:\${srcdir}:/:/g ++s/:@srcdir@:/:/g ++s/^:*// + s/:*$// ++x ++s/\(=[ ]*\).*/\1/ ++G ++s/\n// + s/^[^=]*=[ ]*$// + }' + fi +@@ -8770,7 +8792,7 @@ for ac_last_try in false false :; do + if test -z "$ac_t"; then + break + elif $ac_last_try; then +- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 ++ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +@@ -8855,7 +8877,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + _ACAWK + _ACEOF + cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +- as_fn_error "could not setup config headers machinery" "$LINENO" 5 ++ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + fi # test -n "$CONFIG_HEADERS" + + +@@ -8868,7 +8890,7 @@ do + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; +- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; ++ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac +@@ -8896,7 +8918,7 @@ do + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || +- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; ++ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" +@@ -8923,7 +8945,7 @@ $as_echo "$as_me: creating $ac_file" >&6;} + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac +@@ -9054,22 +9076,22 @@ s&@INSTALL@&$ac_INSTALL&;t t + $ac_datarootdir_hack + " + eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + + test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +-which seems to be undefined. Please make sure it is defined." >&5 ++which seems to be undefined. Please make sure it is defined" >&5 + $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +-which seems to be undefined. Please make sure it is defined." >&2;} ++which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # +@@ -9080,19 +9102,19 @@ which seems to be undefined. Please make sure it is defined." >&2;} + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 + $as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ +- || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ +- || as_fn_error "could not create -" "$LINENO" 5 ++ || as_fn_error $? "could not create -" "$LINENO" 5 + fi + ;; + +@@ -9118,7 +9140,7 @@ _ACEOF + ac_clean_files=$ac_clean_files_save + + test $ac_write_fail = 0 || +- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 ++ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + + # configure is writing to config.log, and then calls config.status. +@@ -9139,7 +9161,7 @@ if test "$no_create" != yes; then + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. +- $ac_cs_success || as_fn_exit $? ++ $ac_cs_success || as_fn_exit 1 + fi + + # +@@ -9280,7 +9302,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || +- as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 ++ as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + fi + + cd "$ac_popdir" +diff --git a/configure.in b/configure.in +index d8cd5f1..ad25b9b 100644 +--- a/configure.in ++++ b/configure.in +@@ -1497,6 +1497,8 @@ EOF + rm -f conftest*]) + if test $libc_cv_initfini_array != yes; then + AC_MSG_ERROR([Need linker with .init_array/.fini_array support.]) ++ elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then ++ AC_DEFINE(NO_CTORS_DTORS_SECTIONS) + fi + + AC_CACHE_CHECK(for libunwind-support in compiler, +diff --git a/elf/sofini.c b/elf/sofini.c +index 5e06f0c..13e74b7 100644 +--- a/elf/sofini.c ++++ b/elf/sofini.c +@@ -1,12 +1,14 @@ + /* Finalizer module for ELF shared C library. This provides terminating + null pointer words in the `.ctors' and `.dtors' sections. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + static void (*const __CTOR_END__[1]) (void) + __attribute__ ((used, section (".ctors"))) + = { 0 }; + static void (*const __DTOR_END__[1]) (void) + __attribute__ ((used, section (".dtors"))) + = { 0 }; ++#endif + + /* Terminate the frame unwind info section with a 4byte 0 as a sentinel; + this would be the 'length' field in a real FDE. */ +diff --git a/elf/soinit.c b/elf/soinit.c +index 6fecbb5..1db676a 100644 +--- a/elf/soinit.c ++++ b/elf/soinit.c +@@ -3,6 +3,7 @@ + the `.ctors' and `.dtors' sections so the lists are terminated, and + calling those lists of functions. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + #include <libc-internal.h> + #include <stdlib.h> + +@@ -40,3 +41,4 @@ __libc_fini (void) + + void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) + = &__libc_fini; ++#endif +diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c +index c6355a8..2af042f 100644 +--- a/sysdeps/i386/init-first.c ++++ b/sysdeps/i386/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c +index f9a7a58..60823bd 100644 +--- a/sysdeps/mach/hurd/i386/init-first.c ++++ b/sysdeps/mach/hurd/i386/init-first.c +@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c +index 20fa1d4..21b5054 100644 +--- a/sysdeps/mach/hurd/powerpc/init-first.c ++++ b/sysdeps/mach/hurd/powerpc/init-first.c +@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (__environ); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c +index d816625..1f3a821 100644 +--- a/sysdeps/sh/init-first.c ++++ b/sysdeps/sh/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c +index 7b2333d..a60212f 100644 +--- a/sysdeps/unix/sysv/linux/init-first.c ++++ b/sysdeps/unix/sysv/linux/init-first.c +@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +-- +1.7.3.4 + |