[patch] PR 8761 and 7076, take 3

Benjamin Kosnik bkoz@redhat.com
Tue Jan 21 21:32:00 GMT 2003


Hey Jerry. 

Here's how you add the missing symbol for linking shared.

Index: config/linker-map.gnu
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/config/linker-map.gnu,v
retrieving revision 1.26
diff -c -p -r1.26 linker-map.gnu
*** config/linker-map.gnu	6 Jan 2003 21:22:55 -0000	1.26
--- config/linker-map.gnu	21 Jan 2003 21:27:17 -0000
*************** GLIBCPP_3.2.2 {
*** 257,262 ****
--- 257,271 ----
  
  } GLIBCPP_3.2.1;
  
+ GLIBCPP_3.2.3 {
+ 
+     extern "C++"
+     {
+ 	std::__num_put_output*
+     }; 
+ 
+ } GLIBCPP_3.2.1;
+ 
  # Symbols in the support library (libsupc++) have their own tag.
  CXXABI_1.2 {
  

I consider this symbol name subject to improvement. 

This patch will not compile on gcc head without modifications.

On gcc-3_3-branch, I'm still seeing fails unrelated to symbol visibility.

Some are execution fails:

1.exe: /mnt/hd/bliss/src.gcc/gcc/libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc:166: void test01(): Assertion `result1 == "9.223.372.036.854.775.807"' failed.

And some are of this form:
%COMP.sh "-static -g -O0" 22_locale/num_put/put/char/4.cc
/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc: In
   member function `_OutIter std::num_put<_CharT, 
   _OutIter>::_M_insert(_OutIter, std::ios_base&, _CharT, const _CharT*, int) 
   const [with _CharT = char, _OutIter = test04()::iter_type]':
/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:947:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::do_put(_OutIter, std::ios_base&, _CharT, bool) const [with _CharT = char, _OutIter = test04()::iter_type]'
/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:733:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::put(_OutIter, std::ios_base&, _CharT, bool) const [with _CharT = char, _OutIter = test04()::iter_type]'
22_locale/num_put/put/char/4.cc:75:   instantiated from here
/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:923: error: no
   matching function for call to `__num_put_output(test04()::iter_type&, const 
   char*&, int&)'

Do you see this stuff too?

-benjamin



More information about the Libstdc++ mailing list