Open sdebionne opened 6 months ago
That is a known issue with Clang. Which version of clang and Boost are you using? In Boost 1.84 a workaround is implemented: https://github.com/boostorg/locale/blob/de51c1a14244a8941f88e4ee9c2b6a742b362b90/include/boost/locale/config.hpp#L93
In Clang 15 this should be fixed.
Thanks for the quick answer. We build Boost1.84 with Clang 16 on MacOs 10.9. I am not sure if the clang version on MacOs matches the LLVM's once though.
They should match the LLVM 15.x version for a while already. So I'm not sure how to fix this from Boosts side. I'd say it should be fine to define BOOST_LOCALE_NO_CXX20_STRING8
on your side for this. If you have any information when/where this issue is fixed on MacOS and how to improve the condition to detect that I'd be grateful. Otherwise I'll just disable u8string
support for MacOS completely.
We're on clang 16 in conda-forge (though we could use clang 17 and soon 18 if we want; however libcxx is stuck at 16 pending some infrastructure work). The macOS deployment target in the PR mentioned by @sdebionne was already bumped to 10.13, and if there's a hard requirement to go higher, we can do that.
I don't see how that issue is still relevant; it was fixed as of LLVM 15, and we're past that.
I am not sure if the clang version on MacOs matches the LLVM's once though.
There's only the clang we provide ourselves, we never use the system(==image) compilers in conda-forge.
I don't see how that issue is still relevant; it was fixed as of LLVM 15, and we're past that.
Looks I misinterpreted the error message which also started with "Undefined symbols" and seemingly related to std::basic_string<char8_t>
and I missed the important part in all those templates: "typeinfo for char8_t" is what is missing.
And indeed I've seen that before popping up with libc++ on FreeBSD. I fixed that for the upcoming release. You can use that or apply https://github.com/boostorg/locale/commit/c5e8f02c903696a213fc4b710f6740ccd1f07f4e as a patch.
We are having trouble building Boost.Locale for Conda forge (see https://github.com/conda-forge/boost-feedstock/pull/194) with
cxxstd=20
which is required for the Cobalt library, on osx (clang 16).I am not familiar with Locale, is there any macro that we should set to prevent the following issue: