This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


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

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


With your patch in bootstrap fails on i686-linux-gnu with:

/usr/bin/ld:libstdc++-symbol.ver:59: parse error in VERSION script
collect2: ld returned 1 exit status
make[4]: *** [libstdc++.la] Error 1

Phil Edwards <phil@jaj.com> writes:

> Some time ago, some symbols had to be added to the export list for the
> sake of (at the time) a single platform.  I worked up a patch to allow
> ports to individually list symbols that would be additionally exported,
> but it also involved fixing more of GNU ld's linker versioning parser.
> Now that a version of binutils has been officially released (2.14) which
> contains the fix, we can start using the functionality on the trunk.
>
> This also brings the "porting to a new platform" docs up to date.
>
> (My editor keeps wanting to trim trailing whitespace in the makfiles,
> so finally I just let it have its way for this patch.)
>
> Tested on x86/linux for a long time.  Post-specific functionality tested
> by just adding fake stuff to a random port and checking the output.
>
>
> 2003-07-05  Phil Edwards  <pme@gcc.gnu.org>
>
> 	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS):  Bump minimal version
> 	requirement.  Add port_specific_symbol_file variable.
> 	* configure.host:  Add docs for port_specific_symbol_file.
> 	Clean up try_cpu block for x86.
> 	* config/linker-map.gnu:  No more "last symbol can't have a
> 	semicolon" kaka.  Add hook for port-specific symbols.

Why?  This is broken!

> Index: config/linker-map.gnu
> ===================================================================
> RCS file: /cvs/gcc/gcc/libstdc++-v3/config/linker-map.gnu,v
> retrieving revision 1.41
> diff -u -3 -p -r1.41 linker-map.gnu
> --- config/linker-map.gnu	5 Jul 2003 04:05:26 -0000	1.41
> +++ config/linker-map.gnu	6 Jul 2003 03:56:58 -0000
> @@ -1,4 +1,4 @@
> -## Linker script for GNU ld 2.11.94+ only.
> +## Linker script for GNU ld 2.13.91+ only.
>  ##
>  ## Copyright (C) 2002, 2003 Free Software Foundation, Inc.
>  ##
> @@ -25,7 +25,6 @@ GLIBCXX_3.4 {
>    global:
>  
>      # Names inside the 'extern' block are demangled names.
> -    # All but the last are terminated with a semicolon.
>      extern "C++"
>      {
>        std::[A-Za-k]*;
> @@ -56,7 +55,7 @@ GLIBCXX_3.4 {
>        std::__num_base::_S_format_int*;
>        std::__num_base::_S_atoms_in;
>        std::__num_base::_S_atoms_out;
> -      std::__numpunct_cache*
> +      std::__numpunct_cache*;
>      };
>  
>      # Names not in an 'extern' block are mangled names.
> @@ -168,6 +167,8 @@ GLIBCXX_3.4 {
>      _ZN9__gnu_cxx17_Atomic_add_mutexE;
>      _ZN9__gnu_cxx22_Atomic_add_mutex_onceE;
>      _ZN9__gnu_cxx31__gthread_atomic_add_mutex_onceEv;
> +
> +  # DO NOT DELETE THIS LINE.  Port-specific symbols, if any, will be here.
>  
>    local:
>      *;

PLease revert this part of the patch to support binutils 2.13.x (I'm
using 2.13.90.0.18).

Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


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