首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么arm-linux-androideabi--fpic要执行-fpic?

为什么arm-linux-androideabi--fpic要执行-fpic?
EN

Stack Overflow用户
提问于 2013-02-21 05:40:48
回答 1查看 1.6K关注 0票数 3

我很惊讶地看到,即使在命令行中没有明确提供这样的标志,gcc也会强制代码保持位置独立。

我怀疑这可能与Android的动态加载器的某些期望有关(例如,对重定位类型的期望,以及将代码放在任何它想要的地方的自由),但我不确定。

有人能解释一下为什么会这样吗?

代码语言:javascript
复制
$ 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-24 20:32:56

从Android4.1开始,谷歌强制full ASLR克服常见的安全漏洞,请参阅this article了解更多细节。

位置独立代码(PIC)是这项工作所必需的,但PIE (位置独立可执行文件)也是如此。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14990461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档