3
我很驚訝地發現gcc強制代碼獨立於位置,即使這樣的標誌沒有在命令行中明確提供。我懷疑它可能與Android的動態加載器的某些期望有關(例如對重定位類型的期望以及隨意放置代碼的自由),但我不確定。爲什麼arm-linux-androideabi-gcc強制使用-fpic?
任何人都可以解釋爲什麼這是真的嗎?
$ arm-linux-androideabi-gcc --version | grep GCC
arm-linux-androideabi-gcc (GCC) 4.4.3
$ arm-linux-androideabi-gcc -v -S main.c |& grep fpic
/home1/local64/android-toolchain/bin/../libexec/gcc/arm-linux-androideabi/4.4.3/cc1 -quiet -v -iprefix /home1/local64/android-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.4.3/ -isysroot /home1/local64/android-toolchain/bin/../sysroot main.c -mbionic -fpic -quiet -dumpbase main.c -march=armv5te -mfloat-abi=soft -mfpu=vfp -auxbase main -version -o main.s