id summary reporter owner description type status milestone component version severity resolution keywords cc 12570 b2 ignores Iconv and disabled boost-locale lib, even though has_iconv.cpp passed hbadger@… Artyom Beilis "Building boost from sources git tag 1.62.0 (4f2bdeb93a4be13ba0dc5e9f44920a2bf67191fc) I want to crossbuild it, on linux (ubuntu) host, for Mac OS X target. Goal: crossbuild the lib boost, with boost-locale Result: boost says that locale needs either ICU or iconv, and it does not build library for locale. Expected result: it would build the library for boost locale. Error messages: ... - iconv (libc) : no - iconv (separate) : no ... - Boost.Locale needs either iconv or ICU library to be built. ... ls stage/lib/ libboost_atomic-mt-s.a libboost_filesystem-mt-s.a libboost_program_options-mt-s.a libboost_system-mt-s.a libboost_thread-mt-s.a libboost_atomic-mt-sd.a libboost_filesystem-mt-sd.a libboost_program_options-mt-sd.a libboost_system-mt-sd.a libboost_thread-mt-sd.a Environment: Crosscompiler and it's toolchain is built in /home/ubuntu/build/osxcross/target/bin/ and is proven to work (builds Mach-O executables, they work when copied ontop real Mac OS X). Mac SDK is available in /home/ubuntu/build/macsdk/MacOSX10.11.sdk/ And it provides the iconv.h file ('''though I do not see any .a''' or other file for it - is that ok?) find /home/ubuntu/build/macsdk/MacOSX10.11.sdk/usr/include | grep iconv /home/ubuntu/build/macsdk/MacOSX10.11.sdk/usr/include/iconv.h Executed command (in place where I downloaded boost, with needed submodules) export WITH_ICONV=""/home/ubuntu/build/macsdk/MacOSX10.11.sdk/usr/"" && git clean -xdf ; git submodule foreach git clean -xdf; ./bootstrap.sh --with-icu && ./b2 headers && export OSX_CPU_ARCH=""core2"" && export OSX_VERSION_MIN=""10.8"" && time ./b2 --toolset=clang --build-type=complete --with-filesystem --with-system --with-program_options --with-thread --with-locale cxxflags=-mmacosx-version-min=${OSX_VERSION_MIN} cxxflags=-march=${OSX_CPU_ARCH} target-os=darwin architecture=x86 address-model=64 --layout=tagged link=static runtime-link=static -sNO_BZIP2=1 --sNO_ZLIB=1 --prefix=/home/ubuntu/build/boost/build-osx/ threading=multi boost.locale.icu=off boost.locale.std=off boost.locale.iconv=on -sICONV_PATH=""$WITH_ICONV"" Running strace debug (strace b2), I can confirm that Boost does try to build the has_ionv.cpp program, and it seems to work fine. All invocations I seen return with 0 exit code. E.g: [pid 22980] execve(""/home/ubuntu/build/osxcross/target/bin/x86_64-apple-darwin15-clang++"", [""/home/ubuntu/build/osxcross/target/bin/x86_64-apple-darwin15-clang++"", ""-c"", ""-x"", ""c++"", ""-march=core2"", ""-mmacosx-version-min=10.8"", ""-O0"", ""-g"", ""-fno-inline"", ""-Wall"", ""-g"", ""-fPIC"", ""-m64"", ""-march=core2"", ""-mmacosx-version-min=10.8"", ""-DBOOST_ALL_NO_LIB=1"", ""-I."", ""-I/home/ubuntu/build/macsdk/MacOSX10.11.sdk/usr/include"", ""-o"", ""bin.v2/libs/locale/build/clang-linux-3.8.0/debug/target-os-darwin/has_iconv_libc_ext.o"", ""libs/locale/src/../build/has_iconv.cpp""], [/* 22 vars */]) = 0 Repeating this test manually also works, creates the .o file, and it is indeed in Mach-O format. No idea why then it still tells me that iconv was not enabled, and as result does not build locale. This bug disallows me from at all using Boost until fixed. " Bugs new To Be Determined locale Boost 1.62.0 Showstopper icu iconv