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: Weird issue with .clone symbol


Hi,
> Jan Hubicka wrote:
>   
>> Well, all clones should be static so they probably should not appear in
>> libstdc++ compatibility suite.  I will try to figure out what is going
>> on here.
>>   
>>     
> Humm, I think you misunderstood, the clone itself is in the object code
> of the user, it wants a symbol which currently is not exported, not
> viceversa. In other terms, in order to solve this issue the trivial way
> I would export additionally from the .so:
>
> _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag
>   
thus, I'm committing the below.

In my understanding all the _S_construct<> instantiations must be
exported from the .so, even if they are used only by the string
constructors: in general, if the user wants debug-mode, no implicit
instantiations are suppressed for string (because no extern templates
are used) and when the user also passes -fno-implicit-templates, the
constructors end up lacking the required _S_constructor<> helpers,
because neither implicitly instantiated in the .o neither exported by
the .so.

Tested x86_64-linux.

Paolo.

//////////////////
2009-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* config/abi/pre/gnu.ver: Export the _S_construct<> helpers.

Index: config/abi/pre/gnu.ver
===================================================================
--- config/abi/pre/gnu.ver	(revision 152771)
+++ config/abi/pre/gnu.ver	(working copy)
@@ -1039,6 +1039,10 @@
     _ZNKSbIwSt11char_traitsIwESaIwEE7crbeginEv;
     _ZNKSbIwSt11char_traitsIwESaIwEE5crendEv;
 
+    # string|wstring ::_S_construct<> helpers
+    _ZNSs12_S_constructI*;
+    _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructI*;
+
 } GLIBCXX_3.4.13;
 
 # Symbols in the support library (libsupc++) have their own tag.

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