This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: Abort in elflink.c: elf_link_check_versioned_symbol


Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> writes:

> The symbol for which this abort happens is
> _ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE from libstdc
> ++.so. Looking at this symbol in libstdc++.so, I can see that this is
> versioned and weak as below but the actual symbol doesn't appear in the
> shared object.  
>
>>From the Symbol Table of libstdc++
>
>   936: 0008e1e4    40 FUNC    WEAK   DEFAULT   11
> _ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4

That is a real symbol definition.  It merely happens to be marked weak.

I think what is happening is that elf_link_check_versioned_symbol
assumes that it will only be called when the regular symbol resolution
code did not resolve the symbol.  So it does not expect to see an
unhidden symbol here; an unhidden symbol should already have been
resolved.  So you should find out why elf_link_check_versioned_symbol is
being called here.

Ian


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