summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-07-25 15:36:07 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-07-25 15:36:07 +0000
commit85df5516305ee239525efaf7cfa015a07a04f39e (patch)
treeecffde0a543e4b332f2596f09fbe562495732d9d /libc
parentc837cf0bbdd09079d64188bf0028bb21df2faec7 (diff)
downloadeglibc2-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.eglibc6
-rwxr-xr-xlibc/configure65
-rw-r--r--libc/configure.in17
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