Iostreams doesn't build on Mac
pdimov opened this issue · 8 comments
The Mac build on Travis fails with a link error caused by PR #95, but the job is marked as allowed failure due to an unrelated issue #91.
Whether liblzma contains the necessary MT functions should be checked by the Jamfile using check-target-builds
. (Add a source file has_lzma_cputhreads.cpp
, then add [ check-target-builds has_lzma_cputhreads : : define=BOOST_IOSTREAMS_LZMA_NO_MULTITHREADED=1 ]
to lzma-requirements
.
I'm working on a pull request.
Well that looks bad. We only escaped this earlier because an unrelated "allowed failure" let us ignore it? Curse our over-reliance on automated tools!
My bjam skillz are insufficient to handle this well, so I'm glad you have a solution in mind already. I really appreciate your effort in cleaning up my mess.
The solution I have in mind is on the pr/check-lzma-cputhreads
branch; maybe you could give it a go while we wait for Travis to get around to it, because I don't have a configuration with a recent liblzma on which to test (my Xenial VM only has libzma 5.1.1.)
With liblzma >= 5.2, building Iostreams should say something like has_lzma_cputhreads builds: yes
and enable MT support.
It might still be a good idea for someone with Mac access to investigate and fix the test failures, or if not that, at least disable the failing tests on Mac so that the job is no longer marked as allowed to fail.
Looks like clang-cl on Windows has the same failure: https://ci.appveyor.com/project/eldiener/iostreams/builds/28399267/job/d25uvfid3axheonf#L1201
I'm seeing this on Mac OS X 10.14 with the 1.72.0beta RC1. LZMA_VERSION
50020042
My suggested change was:
#ifndef BOOST_IOSTREAMS_LZMA_NO_MULTITHREADED
- #if LZMA_VERSION < 50020002
+ #if LZMA_VERSION <= 50020042
#define BOOST_IOSTREAMS_LZMA_NO_MULTITHREADED
#endif
#endif
But that's just a quick fix.