Re: Help needed: vtk FTBFS, undefined reference to std::__detail::__to_chars_10_impl<unsigned int>(char*, unsigned int, unsigned int)::__digits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Jonathan Wakely:

> On 10/11/20 23:24 +0000, Will Crawford wrote:
>>On Tue, 10 Nov 2020 at 11:56, Sandro Mani <manisandro@xxxxxxxxx> wrote:
>>
>>/usr/bin/ld:
>>> CMakeFiles/vtkIOXMLCxxTests.dir/TestXMLHyperTreeGridIO.cxx.o (symbol
>>> from plugin): undefined reference to symbol
>>> '_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits@@LLVM_11'
>>> /usr/bin/ld: /usr/lib64/libLLVM-11.so: error adding symbols: DSO missing
>>> from command line
>>>
>>...
>>
>>> I'm not sure why ld thinks LLVM is involved, vtk does not pull in LLVM
>>> in any way.
>>>
>>> I'm pretty much clueless, any ideas?
>>>
>>
>>That looks like the object file requires a symbol from libLLVM, and gcc
>>isn't linking against it (hence the "DSO missing from command line" part).
>
> That's not a symbol from libLLVM though, it's a static variable inside
> a function template defined in the C++ standard library.

And it got assigned the LLVM_11 symbol version by accident, due to the
way the LLVM linker script works?

> See <bits/charconv.h> in the libstdc++ sources:
>
>   template<typename _Tp>
>     void
>     __to_chars_10_impl(char* __first, unsigned __len, _Tp __val) noexcept
>     {
>       static_assert(is_integral<_Tp>::value, "implementation bug");
>       static_assert(is_unsigned<_Tp>::value, "implementation bug");
>
>       static constexpr char __digits[201] =
> 	"0001020304050607080910111213141516171819"
> 	"2021222324252627282930313233343536373839"
> 	"4041424344454647484950515253545556575859"
> 	"6061626364656667686970717273747576777879"
> 	"8081828384858687888990919293949596979899";

This looks similar to this bug:

  <https://bugzilla.redhat.com/show_bug.cgi?id=1896772>

Except that in the case here on this thread, we probably want the
interposition to get a single definition (although the symbol version
may still prevent that in the end).

My theory is that with the linker plugin, ld sees more shared objects
and considers them missing from the link.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux