This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix _sys_errlist and _sys_siglist compat symbols on ppc{,64} with GCC 4.2+


Hi!

When not using -fno-unit-at-a-time, -fno-toplevel-reorder actually does
reorder variables if -fsection-anchors (the default on ppc/ppc64),
which breaks the compatibility _sys_errlist and _sys_siglist symbols
- they all get the size of the @@ symver.  Adding -fno-section-anchors
fixes this.  -fno-section-anchors has been added to gcc trunk only
a month after -fno-toplevel-reorder and both appeared together in
GCC 4.2, so I think it is safe to check for both options at once.

2008-04-11  Jakub Jelinek  <jakub@redhat.com>

	* configure.in: Check for -fno-section-anchors in addition to
	-fno-toplevel-reorder.
	* configure: Rebuilt.

--- libc/configure.in.jj	2008-02-01 10:54:28.000000000 +0100
+++ libc/configure.in	2008-04-11 19:01:25.000000000 +0200
@@ -1614,11 +1614,11 @@ EOF
   AC_SUBST(libc_cv_hashstyle)
 fi
 
-AC_CACHE_CHECK(for -fno-toplevel-reorder, libc_cv_fno_toplevel_reorder, [dnl
+AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl
 cat > conftest.c <<EOF
 int foo;
 EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
 			    conftest.c 1>&AS_MESSAGE_LOG_FD])
 then
   libc_cv_fno_toplevel_reorder=yes
@@ -1627,7 +1627,7 @@ else
 fi
 rm -f conftest*])
 if test $libc_cv_fno_toplevel_reorder = yes; then
-  fno_unit_at_a_time=-fno-toplevel-reorder
+  fno_unit_at_a_time=-fno-toplevel-reorder -fno-section-anchors
 else
   fno_unit_at_a_time=-fno-unit-at-a-time
 fi
--- libc/configure.jj	2008-02-01 10:54:28.000000000 +0100
+++ libc/configure	2008-04-11 19:01:55.000000000 +0200
@@ -6411,15 +6411,15 @@ echo "${ECHO_T}$libc_cv_hashstyle" >&6; 
 
 fi
 
-{ echo "$as_me:$LINENO: checking for -fno-toplevel-reorder" >&5
-echo $ECHO_N "checking for -fno-toplevel-reorder... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: checking for -fno-toplevel-reorder -fno-section-anchors" >&5
+echo $ECHO_N "checking for -fno-toplevel-reorder -fno-section-anchors... $ECHO_C" >&6; }
 if test "${libc_cv_fno_toplevel_reorder+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat > conftest.c <<EOF
 int foo;
 EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
 			    conftest.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
@@ -6436,7 +6436,7 @@ fi
 { echo "$as_me:$LINENO: result: $libc_cv_fno_toplevel_reorder" >&5
 echo "${ECHO_T}$libc_cv_fno_toplevel_reorder" >&6; }
 if test $libc_cv_fno_toplevel_reorder = yes; then
-  fno_unit_at_a_time=-fno-toplevel-reorder
+  fno_unit_at_a_time=-fno-toplevel-reorder -fno-section-anchors
 else
   fno_unit_at_a_time=-fno-unit-at-a-time
 fi

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]