Cross compiling Tango 9 for ARM
I have been investigating something strange when cross compiling tango for an ARM processor and I don't seem to find the issue, maybe someone has figured this out already.
I have followed the steps to cross compile omniORB from source (http://www.tango-controls.org/resources/howto/how-cross-compile-omniorb/) and used similar ./configure for zeromq.
The "make", "sudo make install" process completed successfully, creating static (.a) and shared(.so) libraries for omniORB and zeromq
When I cross compile the tango library, all succeeds but only a static library gets generated for tango. This has the effect that binaries statically link the tango library - which makes them huge. (60-70MB)
I can see from the config.log that the gcc (not g++) does not support shared libraries, which is strange to me.
What I have done so far:
OS: Ubuntu 16.04 LTS
Tested with various ARM compilers with the same results:
- arm-angstrom-linux-gnueabi-g++ (Linaro GCC 4.7-2013.02-01)
- arm-linux-gnueabi-g++-4.7 (Ubuntu/Linaro 4.7.4-3ubuntu12)
- arm-linux-gnueabi (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4)
I have also compiled tango on a Raspberry Pi, think it was g++-4.7 and that compiled the shared tango libraries and my tango binaries was < 2MB.
Is there something I can check or do?
Instead of cross compiling, you should try the current Debian testing (aka stretch) distribution which already contain tango9 for arm. Debian is in freeze mode, so testing is in good shape for release.