I am trying to cross-compile for osx from linux using clang. When I build boost, I use the following: CC="x86_64-apple-darwin13-clang" CFLAGS="-O2 -DNDEBUG" CXX="x86_64-apple-darwin13-clang++-libc++" CXXFLAGS="-O2 -DNDEBUG -std=c++14" AR="x86_64-apple-darwin13-ar" AS="x86_64-apple-darwin13-as" RANLIB="x86_64-apple-darwin13-ranlib" ./bootstrap.sh --without-icu --prefix=/softs/usr/darwin13-clang/release/boost --with-toolset=clang Then I use the following user-config.jam: using clang : : x86_64-apple-darwin13-clang++-libc++ : <cxxflags>-std=c++14 ; with the following command: ./b2 -d2 -j8 --layout=system --user-config=user-config.jam --without-mpi --without-python --without-context --without-coroutine link=static threading=multi runtime-link=shared target-os=darwin threadapi=pthread address-model=64 define=BOOST_THREAD_USE_LIB define=BOOST_LOG_WITHOUT_EVENT_LOG variant=release install Apart from a few errors, everythings looks fine: ...failed updating 3 targets... ...skipped 3 targets... ...updated 13684 targets... However, when I link against the static libraries that have been built, I get this type of messages: ld: warning: ignoring file /softs/usr/darwin13-clang/release/boost/lib/libboost_system.a, file was built for archive which is not the architecture being linked (x86_64): /softs/usr/darwin13-clang/release/boost/lib/libboost_system.a I suspect that it is because the wrong ar and ranlib where used because I find in my log that b2 used "ar" and "ranlib" instead of "x86_64-apple-darwin13-ar" and "x86_64-apple-darwin13-ranlib". So I changed my user-config.jam to: using clang : : x86_64-apple-darwin13-clang++-libc++ : <cxxflags>-std=c++14 <archiver>x86_64-apple-darwin13-ar <ranlib>x86_64-apple-darwin13-ranlib ; but b2 is still using "ar" and "ranlib". Any idea of what my problem is? Frédéric