ppc64le: expected localentry:0 `pthread_condattr_destroy'

Florian Weimer fweimer@redhat.com
Thu Jul 27 09:55:00 GMT 2017


On 07/27/2017 06:04 AM, Alan Modra wrote:
>>>> On 07/25/2017 09:11 PM, Josh Stone wrote:
>>>>> ./bin/rustc: error while loading shared libraries:
>>>>> ./lib/libstd-c3a1748e15265da7.so: expected localentry:0
>>>>> `pthread_condattr_destroy'
> 
> You will get this error if the link-time version of a function symbol
> is seen as localentry:0 (ie. not needing a global entry point due to
> not needing a valid r2 toc pointer), but the run-time version does.
> 
> The most likely thing is that your library was linked against a stub
> version of pthread_condattr_destroy.  Making the stub weak will
> disable the generation of the optimized localentry:0 plt call code.
> So will linking with -Wl,--no-plt-localentry

The common theme seems to be that this only affects symbols which live
both in libpthread and libc.  Do you suggest that we have to make the
implementation in libc a weak symbol?

Why isn't this a plain regression break ELF symbol interposition?

I filed a glibc bug for this:

  https://sourceware.org/bugzilla/show_bug.cgi?id=21847

I think we need to sort this out before the release.  That does not mean
we have to fix it, we just need a better understanding what is going on.

Thanks,
Florian



More information about the Binutils mailing list