diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-05-21 23:26:27 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-05-21 23:26:27 +0000 |
commit | 59f0c22ed2b131cac16446d6bcc3d5da1d09e120 (patch) | |
tree | ca5b9d92e991b8a4743b59e089753d9e50084eb3 | |
parent | c5b3a2c05b407197fe56d229542eeeba1f710908 (diff) | |
download | glibc-59f0c22ed2b131cac16446d6bcc3d5da1d09e120.tar glibc-59f0c22ed2b131cac16446d6bcc3d5da1d09e120.tar.gz glibc-59f0c22ed2b131cac16446d6bcc3d5da1d09e120.tar.bz2 glibc-59f0c22ed2b131cac16446d6bcc3d5da1d09e120.zip |
Filter out unknown symbols in stack-protector test.
-rw-r--r-- | ChangeLog | 6 | ||||
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | configure.in | 7 |
3 files changed, 20 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2012-05-21 Joseph Myers <joseph@codesourcery.com> + + * configure.in (libc_cv_predef_stack_protector): Only consider + "foobar" and "__stack_chk_fail" lines in libc_undefs. + * configure: Regenerated. + 2012-05-21 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_SET_ERRNO): @@ -7696,6 +7696,13 @@ libc_undefs=`$NM -u conftest.o | as_fn_error $? "confusing output from $NM -u" "$LINENO" 5 } echo >&5 "libc_undefs='$libc_undefs'" +# On some architectures, there are architecture-specific undefined +# symbols (resolved by the linker), so filter out unknown symbols. +# This will fail to produce the correct result if the compiler +# defaults to -fstack-protector but this produces an undefined symbol +# other than __stack_chk_fail. However, compilers like that have not +# been encountered in practice. +libc_undefs=`echo "$libc_undefs" | egrep '^(foobar|__stack_chk_fail)$'` case "$libc_undefs" in foobar) libc_cv_predef_stack_protector=no ;; '__stack_chk_fail diff --git a/configure.in b/configure.in index a9ee7334d6..38b55a6784 100644 --- a/configure.in +++ b/configure.in @@ -2072,6 +2072,13 @@ libc_undefs=`$NM -u conftest.o | AC_MSG_ERROR([confusing output from $NM -u]) } echo >&AS_MESSAGE_LOG_FD "libc_undefs='$libc_undefs'" +# On some architectures, there are architecture-specific undefined +# symbols (resolved by the linker), so filter out unknown symbols. +# This will fail to produce the correct result if the compiler +# defaults to -fstack-protector but this produces an undefined symbol +# other than __stack_chk_fail. However, compilers like that have not +# been encountered in practice. +libc_undefs=`echo "$libc_undefs" | egrep '^(foobar|__stack_chk_fail)$'` case "$libc_undefs" in foobar) libc_cv_predef_stack_protector=no ;; '__stack_chk_fail |