On 11/16/23 18:32, Peter Dimov via Boost wrote:
Andrey Semashev wrote:
Looks like it is, as the problem seems confined to Filesystem.
So far I don't see this as a Boost.Filesystem bug. The missing symbols (at least, those which were posted here earlier) are standard C++ symbols, which by default should be linked automatically by the compiler. If the compiler doesn't do that, this is a compiler bug as far as I'm concerned. So the right place to report it is:
https://github.com/llvm/llvm-project/issues/
Incidentally, I have reported a similar problem before here:
https://github.com/llvm/llvm-project/issues/60578
and it looks like it hasn't been fixed yet.
As for a workaround, I suspect the problem can be worked around by manually adding linking with the standard library that defines those missing symbols. For example, `operator delete` is defined in libc++abi, so you may fix the problem by adding `linkflags=c++abi` to `b2` command line.
But the problem only appears to affect Filesystem; the other libraries seem to link fine. There must be some difference that triggers it.
I suspect, this is related to `-Wl,--no-undefined` that Boost.Filesystem adds.