Source: llvm-toolchain-14
Version: 1:14.0.6-8
Severity: serious
Tags: ftbfs fixed-upstream patch sid
Justification: fails to build from source

When building chromium, I hit the following:

ld.lld: error: undefined symbol: void std::__cxx11::basic_string<char16_t, std::char_traits<char16_t>, std::allocator<char16_t> >::_M_construct<char16_t const*>(char16_t const*, char16_t const*, std::forward_iterator_tag)
   >>> referenced by http_handler.cc
>>> obj/chrome/test/chromedriver/lib/http_handler.o:(internal::MatchesCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CommandMapping const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, base::DictionaryValue*))


Even fixing that one implicit cast from std::u16string to base::StringPiece16, there's many more of those types of errors. The errors were trigged by chromium upstream switching from --std=c++17 to --std=c++20, so I figured I could work around it with this patch:

<https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/fixes/disable-cxx20.patch>

Unfortunately, even with that it still happens on some architectures:

<https://buildd.debian.org/status/fetch.php?pkg=chromium&arch=ppc64el&ver=108.0.5359.71-2&stamp=1670024551&raw=0>

Upstream claimed to have fixed this bug in clang 14.0.5, however it then popped up again in 14.0.6:

<https://github.com/llvm/llvm-project/issues/55560>

There's now a fix from 2 days ago:

<https://github.com/kwizart/llvm-project/commit/c081bf4098c729afacf20303cc9df62bf13c3362>

It would be great to get this fixed in sid, and it's also an issue in bullseye with clang-13. It's probably also in clang-15, I'm guessing, although I haven't tested it and will likely get fixed automatically in the next clang point release.

Thanks,
Andres

Reply via email to