Boost logo

Boost :

Subject: [boost] [Boost-build] Android tests run
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2013-11-22 10:48:55


Hi all,

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
tests results:

"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
fixed someday.

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.

Some hints:
* You can check for android platform in your code using
defined(__ANDROID__).
* __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
https://github.com/MysticTreeGames/Boost-for-Android/pull/15

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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk