diff options
Diffstat (limited to 'CIAO/docs/CIAO_android_port.html')
-rw-r--r-- | CIAO/docs/CIAO_android_port.html | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/CIAO/docs/CIAO_android_port.html b/CIAO/docs/CIAO_android_port.html deleted file mode 100644 index 8ad2543e5c8..00000000000 --- a/CIAO/docs/CIAO_android_port.html +++ /dev/null @@ -1,168 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> -<!-- --> -<html> <head> -<title>Setting up a CIAO Android port</title> -</head> - -<body> -<h1>Setting up a CIAO Android port</h1> - -<p>Currently the CIAO Android port has been tested using Android NDKr8e running on an Android 4.1.2 platform (API level 16).</p> - -<p>The ACE test framework has been updated to be able to deploy CIAO regression tests in a mixed runtime environment. In this setup -the plan launcher, naming service and execution manager run on a Linux host platform. CIAO nodes can be configured to run either -on the Linux host platform or an Android device.<p/> -<p>The tested configuration runs one node (with node manager, locality manager and component DLLs) on an Android device (a Beaglebone) and (the) other -node(s) on linux.</p> - -<p>The tests currently refactored to be able to run in such a test setup are listed in CIAO/examples/ciao_android.lst. -For those tests minor changes are made in the run-test.pl scripts.</p> - -<p>Below is a list of requirements needed to be able to set up an Android build and test environment:</p> -<ul> - <li><b>shared filesystem</b></font> - The Linux host platform and the android device need to share the Android cross-build tree using a shared - filesystem like NFS (this was used in the test described above); - It is required that the buildtree is mounted in such a way that the path to access the tree is identical for both platforms (Linux and Android) - <li><b>XercesC</b> - Although not explicitly required for the parts of CIAO tested on the Android device, XercesC is required when testing a full cross - build of ACE/TAO/CIAO&DAnCE for Android. Since the multibyte support in the standard Android libraries is lacking it will be needed to port a - multibyte support library like <code>libincov</code> as well. For the described cross build xerces2 and libiconv-1.13.1 were ported to - Android (see below for more information) - <li><b>Extra environment variables</b> - For the cross build and for running the tests in the mixed runtime environment, - extra environment variables are needed, see for more information <a href= "#section setup_android">Basic steps to setup the Android cross build</a>. -</ul> - -<h2>Android shell executable path length limit</h2> -The Android shell executable path length in this setup shouldn't be longer then 128 bytes, consider this when mounting the buildtree. - -<h2>NFS mounting</h2> - -Reliable NFS mounting required using TCP protocol. - -<h2>Porting XercesC</h2> - -Libiconv was ported according to the instructions <a href="http://danilogiulianelli.blogspot.nl/2012/12/how-to-cross-compile-libiconv-for.html">here</a>. -Subsequently cross building XercesC required 2 patches to circumvent a problem with the pthread library in the configure script and the lack of support for the <code>localeconv()</code> method. -<h3>./configure patch</h3> - -<pre> ---- xerces-c-src_2_8_0/src/xercesc/runConfigure 2007-08-28 20:44:56.000000000 +0200 -+++ ../android/xerces-c-src_2_8_0/src/xercesc/runConfigure 2013-09-19 14:23:55.604126857 +0200 -@@ -324,7 +324,8 @@ if test $thread = "none"; then - else - THREADS=pthread - threadingDefines="-DXML_USE_PTHREADS" -- threadingLibs="-lpthread" -+ threadingLibs="" -+# threadingLibs="-lpthread" - if test $platform = "hp-11"; then - if test $thread; then - case $thread in -</pre> - -<h3>localeconv patch</h3> - -<pre> ---- xerces-c-src_2_8_0/src/xercesc/util/XMLAbstractDoubleFloat.cpp 2007-08-28 20:44:52.000000000 +0200 -+++ ../android/xerces-c-src_2_8_0/src/xercesc/util/XMLAbstractDoubleFloat.cpp 2013-09-19 11:18:07.244662085 +0200 -@@ -437,6 +437,7 @@ void XMLAbstractDoubleFloat::normalizeZe - - void XMLAbstractDoubleFloat::normalizeDecimalPoint(char* const toNormal) - { -+# if 0 - // find the locale-specific decimal point delimiter - lconv* lc = localeconv(); - char delimiter = *lc->decimal_point; -@@ -450,6 +451,7 @@ void XMLAbstractDoubleFloat::normalizeDe - *period = delimiter; - } - } -+# endif - } - - -</pre> - - -<A name="section setup_android"><h2>Basic steps to setup the Android cross build</h2></A> - - In general, follow the cross compilation setup instructions provide in $TAO_ROOT/TAO-INSTALL.html. Search for "Using cross compilation".<br> - Extra information for this particular cross build:<br><br> - - <b>Setup the Linux host build:</b> - <p>On the host, not only TAO_IDL, but also DAnCE and CIAO are needed, so the following workspace was used for the host build: - <pre> - { - ACE/ace - ACE/apps/gperf/src - ACE/protocols/ace/INet - TAO/tao - TAO/TAO_IDL - TAO/orbsvcs/orbsvcs/CosNaming.mpc - TAO/orbsvcs/orbsvcs/CosNaming_Serv.mpc - TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc - TAO/orbsvcs/Naming_Service - TAO/orbsvcs/orbsvcs/Svc_Utils.mpc - CIAO/tools - DAnCE/dance - DAnCE/tools - CIAO/ccm - CIAO/ciao - CIAO/examples/Hello - } - </pre> - </p> - <b>Setup the Android target build:</b> - <p> - Create ace/config.h: #include "ace/config-android.h"<br> - Create bin/MakeProjectCreator/config/default.features:<br> - <pre> - ssl=0 - bzip2=0 - xerces2=1 - cross_compile=1 - </pre> - Create include/makeinclude/platform_macros.GNU:<br> - <pre> - fl=0 - xt=0 - CROSS_COMPILE=arm-linux-androideabi- - xerces2=1 - debug=0 - buildbits=0 - </pre> - Include the include/makeinclude/platform_android.GNU file.<br> - Ensure the following environment variables are set:<br> - <pre> - ACE_TEST_VERBOSE=1 - ANDROID_ABI=armeabi-v7a - ANDROID_ARCH=arm - ACE_ROOT= the path to the ACE_ROOT of the target - CIAO_ROOT= the path to the CIAO_ROOT of the target - DANCE_ROOT= the path to the DANCE_ROOT of the target - HOST_ROOT= the path to the ACE_ROOT of the host - MPC_ROOT= the path to the MPC_ROOT of the target - TAO_ROOT= the path to the TAO_ROOT of the target - </pre> - </p> - - <b>Running test on mixed environment</b><br> -<p> - Ensure the following environment variables are (re)set: -<pre> - ACE_ROOT= the path to the ACE_ROOT of the host - ACE_TEST_VERBOSE=1 - ANDROID_ACE_ROOT=the path to the ACE_ROOT of the target - ANDROID_ARCH=arm - ANDROID_CIAO_ROOT=the path to the CIAO_ROOT of the target - ANDROID_DANCE_ROOT=the path to the DANCE_ROOT of the target - ANDROID_OS=remote - ANDROID_REMOTE_SHELL="ssh targetname" with targetname is the hostname of the Android device - ANDROID_TAO_ROOT=the path to the TAO_ROOT of the target - CIAO_ROOT=the path to the CIAO_ROOT of the host - DANCE_ROOT=/the path to the DANCE_ROOT of the host - DOC_TEST_2=ANDROID - HOST_ROOT=the path to the ACE_ROOT of the host - TAO_ROOT= the path to the TAO_ROOT of the host -</pre> - -</body> </html> |