boostorg/iostreams

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.

#103. Confirmed by @glenfe.

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.

mclow commented

I'm seeing this on Mac OS X 10.14 with the 1.72.0beta RC1. LZMA_VERSION 50020042

mclow commented

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.