summaryrefslogtreecommitdiff
path: root/CIAO/docs/CIAO_android_port.html
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/docs/CIAO_android_port.html')
-rw-r--r--CIAO/docs/CIAO_android_port.html168
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>