そのようなフラグがコマンドラインで明示的に提供されていなくても、gcc がコードを位置に依存しないように強制するのを見て驚きました。
Android の動的ローダーからの特定の期待 (たとえば、再配置の種類に対する期待や、必要な場所にコードを配置する自由) と関係があるのではないかと思いますが、確かではありません。
それが本当になぜなのか、誰か説明できますか?
$ 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