Maybe this post found on necessitas could be usefull to port firebird server to android :
---------- Hello everyone, We've faced some big problems which prevent us to release alpha4 SDK, so, I think we own you some explanations why we delay it that much. First problem we've encountered it was the changes done in QtCreator (by Nokia guys), which delayed the release with more than 2-3 weeks, then we had to wait for ssl certificates for Ministro to arrive, then we've discovered that the official Android NDK had to be rebuilt for all platforms, then, again, we've found problems in QtCreator, then the SDK installer keep me busy for a couple of days, then we've face even more problems with Ministro [1] and now we've found the biggest one, which might break some apps. The problem is the C++ support on Android. The default libstdc++ library is useless, it contains only "new", "delete", "type_info" implementations, so we had to use something else which also comes with stl support, so I choose to use the static gnu libstdc++. Shortly after we release alpha3 I found that is not very wise to use static libstdc++ on more than one library, android-ndk/docs/STANDALONE-TOOLCHAIN.html says that: [quote] The standalone toolchain also comes with a copy of the GNU libstdc++ library, which provides an implementation of the C++ Standard Template Library. To use it, you however need to link with the proper library: * Use -lstdc++ to link against the _static_ library version. This ensures that all required C++ STL code is included into your final binary. This is ideal if you are only generating a single shared library or executable. This is the recommended way to do it. * Use -lgnustl_shared to link against the _shared_ library version. This is required if you have several related shared libraries or executables that need to run in the same address space at runtime (some global variables need to be defined uniquely, which is not possible if you link the static libstdc++ against each one of your executables). [/quote] Now the question is, how to fix this problem without breaking the ABI? The answer it seemed to be easy, theoretically just adding the whole libstdc++ to QtCore should do the job [2], I loved myself for that idea, but ... not for a long time, because hey, in real life nothing is that simple, after we shipped the second testing SDK, Marco post an alarming message [3] on necessitas-devel mailing list. The problem seems to be easy to fix, because I removed the STL library from the mkspecs file, the STL test didn't compile anymore and that it seemed it was the reason for the problems, but again, "la vie en rose" doesn't apply to me, because soon I discover that the --whole-archive [2] flag is not working as it should, basically it doesn't export all the symbols from libstdc++ and you can not use only QtCore to link your STL apps. We (mostly Ray) tried a lot of different paths but all of them ended badly, then Ray reported this issue to Google http://code.google.com/p/android/issues/detail?id=36472, we really hopped that we did something stupid but ... it seems we didn't. Now we must decide what we do next, we see the following solutions: 1 - Release the SDK in a few days, but we must keep it as it is, try to embed the whole libstdc++ library into QtCore, even it is not exported all of it,but it seems it fixes the "static libstdc++" problem described above, but we are not 100% sure. 2 - Delay the release, and fix the bloody linker, make it export everything it should from libstdc++. The "static libstdc++" problem will be 100% fixed (at least theoretically). 3 - Delay the release, switch to shared libstdc++ library, but this move it will break the ABI, because all existing apps will search for stl and c++ symbols into QtCore not in the shared libstdc++. Of course we can not afford to break all existing apps, so we Ministro will need more love to handle multiple ABI versions. 4. Is a combination between first and the seconds solution: we ship the SDK now (1), but we (actually Ray is doing this tremendous job, I'm just the assistant) keep working on (2). Please let us know your opinions on this matter. Any help with (2) will be very appreciated. Cheers, BogDan. ------------ Le 19/07/2012 10:57, J-L M a écrit : > Hello, > > We are trying to compile Firebird 2.1 for Android in order to use the > embedded version in our mobile device of our software. > > But for the moment it seems impossible for some reasons : Android uses > his own Libc called Bionic. And the problem is that there is a lot of > missing features in. There is no implementation of the POSIX IPC or > System V IPC inside, Android drop this to avoid denial-of-service. So, > use of semaphore, shared memory, etc, is not possible. > > We have written a more complet document of this porterage which > describes the problems in detail. > > > Somebody have already attempt to compile or to make an Android version > of Firebird ? > > What would be the good way to do that ? > > Otherwise, how to interest Firebird developpers to make this Android > version ? (Maybe I can create a topic in the tracker ) > > Thanks in advance. > > > > Jean-Louis Meuriot > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > > > Firebird-Devel mailing list, web interface at > https://lists.sourceforge.net/lists/listinfo/firebird-devel > ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel