diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-07-25 15:36:07 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-07-25 15:36:07 +0000 |
commit | 85df5516305ee239525efaf7cfa015a07a04f39e (patch) | |
tree | ecffde0a543e4b332f2596f09fbe562495732d9d /libc | |
parent | c837cf0bbdd09079d64188bf0028bb21df2faec7 (diff) | |
download | eglibc2-85df5516305ee239525efaf7cfa015a07a04f39e.tar.gz |
* configure.in (whether to use .ctors/.dtors header and trailer):
Avoid use of AC_TRY_LINK.
* configure: Regenerate.
git-svn-id: svn://svn.eglibc.org/trunk@14703 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc')
-rw-r--r-- | libc/ChangeLog.eglibc | 6 | ||||
-rwxr-xr-x | libc/configure | 65 | ||||
-rw-r--r-- | libc/configure.in | 17 |
3 files changed, 33 insertions, 55 deletions
diff --git a/libc/ChangeLog.eglibc b/libc/ChangeLog.eglibc index 0639189fd..8747c03ff 100644 --- a/libc/ChangeLog.eglibc +++ b/libc/ChangeLog.eglibc @@ -1,3 +1,9 @@ +2011-07-25 Joseph Myers <joseph@codesourcery.com> + + * configure.in (whether to use .ctors/.dtors header and trailer): + Avoid use of AC_TRY_LINK. + * configure: Regenerate. + 2011-07-22 Denis Zaitceff <zaitceff@gmail.com> * elf/dl-support.c, elf/rtld.c: Include <gnu/option-groups.h>. diff --git a/libc/configure b/libc/configure index 4abebc42b..cb177933c 100755 --- a/libc/configure +++ b/libc/configure @@ -6520,46 +6520,22 @@ if test "${libc_cv_ctors_header+set}" = set; then $as_echo_n "(cached) " >&6 else libc_cv_ctors_header=yes - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - + cat > conftest.c <<EOF +int _start (void) { return 0; } +int __start (void) { return 0; } +int puts (const char *s) { return 0; } __attribute__ ((constructor)) void ctor (void) { puts("ctor"); } __attribute__ ((destructor)) void dtor (void) { puts("dtor"); } - - ; - 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 +EOF + if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest + conftest.c -static -nostartfiles -nostdlib 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 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 $READELF -WS conftest$ac_exeext | $AWK ' + (exit $ac_status); }; } + then + if $READELF -WS conftest$ac_exeext | $AWK ' { gsub(/\[ */, "[") } $2 == ".ctors" || $2 == ".dtors" { size = strtonum("0x" $6) @@ -6576,21 +6552,12 @@ $as_echo "$ac_try_echo") >&5 libc_cv_ctors_header=no fi - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { { $as_echo "$as_me:$LINENO: error: missing __attribute__ ((constructor)) support??" >&5 + else + { { $as_echo "$as_me:$LINENO: error: missing __attribute__ ((constructor)) support??" >&5 $as_echo "$as_me: error: missing __attribute__ ((constructor)) support??" >&2;} { (exit 1); exit 1; }; } - -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - + fi + rm -f conftest* fi { $as_echo "$as_me:$LINENO: result: $libc_cv_ctors_header" >&5 $as_echo "$libc_cv_ctors_header" >&6; } diff --git a/libc/configure.in b/libc/configure.in index 2e21ce2a4..9a80e5a06 100644 --- a/libc/configure.in +++ b/libc/configure.in @@ -1524,11 +1524,16 @@ EOF AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer, libc_cv_ctors_header, [dnl libc_cv_ctors_header=yes - AC_TRY_LINK([], [ + cat > conftest.c <<EOF +int _start (void) { return 0; } +int __start (void) { return 0; } +int puts (const char *s) { return 0; } __attribute__ ((constructor)) void ctor (void) { puts("ctor"); } __attribute__ ((destructor)) void dtor (void) { puts("dtor"); } -], - [dnl +EOF + if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest + conftest.c -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD]) + then AS_IF([$READELF -WS conftest$ac_exeext | $AWK ' { gsub(/\@<:@ */, "@<:@") } $2 == ".ctors" || $2 == ".dtors" { @@ -1543,10 +1548,10 @@ __attribute__ ((destructor)) void dtor (void) { puts("dtor"); } exit ((ctors_ok && dtors_ok) ? 0 : 1) } '], [libc_cv_ctors_header=no]) - ], [dnl + else AC_MSG_ERROR([missing __attribute__ ((constructor)) support??]) - ]) - ]) + fi + rm -f conftest*]) if test $libc_cv_ctors_header = no; then AC_DEFINE(NO_CTORS_DTORS_SECTIONS) fi |