gpt4 book ai didi

android - 为什么arm-linux-androideabi-gcc强制执行-fpic?

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:40 24 4
gpt4 key购买 nike

我很惊讶地看到 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

最佳答案

从 Android 4.1 开始,Google 强制执行完整的 ASLR要克服常见的安全漏洞,请参阅 this article了解更多详情。

此功能需要位置独立代码 (PIC),但也需要 PIE(位置独立可执行文件)。

关于android - 为什么arm-linux-androideabi-gcc强制执行-fpic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14990461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com