[libstdc++] Port-specific symbol exports, porting notes

Phil Edwards phil@jaj.com
Sun Jul 6 20:31:00 GMT 2003


On Sun, Jul 06, 2003 at 03:56:26PM -0400, Phil Edwards wrote:
> Is there any particular need for GCC 3.4 to support symbol versioning under
> binutils 2.11?  The globbing fix was in 2.12.  I'd prefer to remove the
> "if it can magically handle wildcards" test altogether, which will restore

And after testing, this is how it looks.  For 3.3, we required either
binutils 2.12 or a gnu linker with a Linux vendor backport.  I have a
difficult time imagining Linux vendors shipping 3.4 but not a post-2.11
binutils, so I submit that this fallback test has served its purpose and can
go gently into that good night.  (And many thanks to Jakub for originally
creating it.)


2003-07-06  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS):  Do not test for binutils
	2.11 with globbing backport fix.
	* aclocal.m4, configure:  Regenerated.


Index: acinclude.m4
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/acinclude.m4,v
retrieving revision 1.254
diff -u -3 -p -r1.254 acinclude.m4
--- acinclude.m4	6 Jul 2003 04:07:25 -0000	1.254
+++ acinclude.m4	6 Jul 2003 20:29:33 -0000
@@ -299,7 +299,8 @@ dnl
 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
 dnl Define LD, with_gnu_ld, and (possibly) glibcxx_gnu_ld_version as
-dnl side-effects of testing.
+dnl side-effects of testing.  The last will be a single integer, e.g.,
+dnl version 1.23.45.0.67.89 will set glibcxx_gnu_ld_version to 12345.
 dnl
 dnl GLIBCXX_CHECK_LINKER_FEATURES
 AC_DEFUN(GLIBCXX_CHECK_LINKER_FEATURES, [
@@ -2266,26 +2267,13 @@ glibcxx_min_gnu_ld_version=21400
 # above.
 if test $enable_symvers = yes ; then
   if test $with_gnu_ld = yes &&
-    test $glibcxx_shared_libgcc = yes ;
+     test $glibcxx_shared_libgcc = yes ;
   then
     if test $glibcxx_gnu_ld_version -ge $glibcxx_min_gnu_ld_version ; then
-        enable_symvers=gnu
+      enable_symvers=gnu
     else
-      ac_test_CFLAGS="${CFLAGS+set}"
-      ac_save_CFLAGS="$CFLAGS"
-      CFLAGS='-shared -Wl,--version-script,conftest.map'
+      # The right tools, the right setup, but too old.  Fallbacks?
       enable_symvers=no
-      changequote(,)
-      echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
-      changequote([,])
-      AC_TRY_LINK([int foo;],, enable_symvers=gnu)
-      if test "$ac_test_CFLAGS" = set; then
-	CFLAGS="$ac_save_CFLAGS"
-      else
-	# this is the suspicious part
-	CFLAGS=''
-      fi
-      rm -f conftest.map
     fi
   else
     # just fail for now



More information about the Libstdc++ mailing list