Tagged: mips android
- October 10, 2013 at 1:37 pm #31508
After compiling android mips source code in out/target/product/generic_mips/system/ bin all the files that are
generated are shared object files instead of executables.In my opinion in bin folder executables should be generated.
Please validate my understanding.If true what changes i should do in order to generate executables in system/bin folder
instead of shared object files.October 10, 2013 at 5:46 pm #38083
I assume your question is about programs built from within the Android source tree, rather than about use of the Android NDK tools to build independently-loaded apps.
As on the Arm and x86 versions of Android, the majority of programs in the device’s /system/bin folder are dynamically-linked executables that share already-loaded copies of system libraries rather than having those libraries statically linked into each program. It is also possible to force selected programs to be built as stand-alone static executables. This was done (by Google) for only 5 of the many programs in /system/bin: applypatch_static, check_prereq, gdbserver, recovery, and updater. Those programs’ Android.mk files include the line
LOCAL_FORCE_STATIC_EXECUTABLE := true
which modifies the default (dynamic) behavior of the BUILD_EXECUTABLE macro.
If you are thinking about changing all the other /system/bin programs to static form, we don’t recommend that.
If you are creating a new program, and that program’s functionally requires being fully static like the above 5 examples, you should copy the build methods used in the Android.mk files of those examples; their source directories are at build/tools/check_prereq, bootables/recovery, bootables/recovery/applypatch, and bootables/recovery/updater.
For Android system questions like this that are not Mips-specific, we recommend also consulting one of the broader forums at Google: http://source.android.com/source/community/index.html