[RFC PATCH] Don't use ELF weak for entities with vague linkage when COMDAT groups are available

Julian Brown julian@codesourcery.com
Thu Apr 14 19:58:00 GMT 2005


Eric Botcazou wrote:
>>>/usr/bin/ld: Warning: size of symbol
>>>`__gnu_cxx::__common_pool_policy<__gnu_cxx::__pool,
>>>true>::_S_destroy_thread_key(void*)' changed from 21 in testsuite_abi.o
>>>to 217 in testsuite_character.o
>>>/usr/bin/ld: Warning: size of symbol
>>
>>Would you check to see that these symbols are indeed in COMDAT groups in
>>both files?  If so, then the linker is being silly.  
> 
> 
> testsuite_abi.o
> 
>   211: 0000000000000000    21 FUNC    GLOBAL DEFAULT   29 
> _ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv
> 
> COMDAT group section 
> `.group' [_ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv] 
> contains 1 sections:
>    [Index]    Name
>    [   29]   .gnu.linkonce.t._ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv
> 
> 
> testsuite_character.o
> 
>    180: 0000000000000000   217 FUNC    GLOBAL DEFAULT   67 
> _ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv
> 
> COMDAT group section 
> `.group' [_ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv] 
> contains 1 sections:
>    [Index]    Name
>    [   67]   .gnu.linkonce.t._ZN9__gnu_cxx20__common_pool_policyINS_6__poolELb1EE21_S_destroy_thread_keyEPv

I have tried the building a gcc on x86-64 with the vanilla binutils from 
SuSE 9.2 built from source, and it doesn't exhibit this problem. With 
SuSE patches applied, the build fails for for me (on a non-SuSE system). 
So in this case, the problem would appear to be one of the SuSE patches.

Just FYI.

Julian



More information about the Java-patches mailing list