Subject: [boost] [Boost-build] Android tests run
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2013-11-22 10:48:55
With help of Steven Watanabe, Vladimir Prus and Boost-for-Android project,
I've finally run the regression tests on Android ARM. Results can be
already seen on the regression test page for trunk.
Here is a description of some common issues that can be seen in regression
"arm-linux-androideabi/bin/ld.exe: error: cannot find -lrt"
Some of the Android libraries (for example librt) are merged with libc.
Some patches to b2 required not to add -lrt fot the platform.
"soinfo_link_image(linker.cpp:1635): could not load library
"libboost_unit_test_framework-gcc-d-1_55.so.1.55.0" needed by
"./copy_if_test1"; caused by load_library(linker.cpp:745): library
"libboost_unit_test_framework-gcc-d-1_55.so.1.55.0" not found"
This is because of cross compilation - tests are compiled in Win and then
copied to the emulator. This is an error in my copying script that will be
Also please note, that sources are compiled with
-DBOOST_ASIO_DISABLE_STD_ATOMIC and -DBOOST_AC_USE_PTHREADS because there
are some issues with std::atomic on android (See
https://code.google.com/p/android/issues/detail?id=42735#makechanges ) This
must be possibly added to the config of the libraries by default.
* You can check for android platform in your code using
* __ANDROID__ can run on different hardware, so do not assume that it will
be always ARM.
* Having problems with Jamfile and cross compilation? Use <target-os>
instead of <host-os> in your jamfiles.
* Boost-for-Android project (
https://github.com/MysticTreeGames/Boost-for-Android) may contain some
useful fixes for your library. Author of the library "would love" to see
the issues integrated, see discussion at
This letter is cc'ed to the boost-build because of:
* "-lrt" issues
* Is there a way to install/call_script for all the boost libraries before
running the regression tests?
* specifying "<threadapi>pthread" in user-config.jam does not work
-- Best regards, Antony Polukhin