WeHack BBS
讨论一下链接脚本和PIE - 可打印的版本

+- WeHack BBS (https://bbs.wehack.space)
+-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html)
+--- 版块: GNU/Linux 讨论区 (https://bbs.wehack.space/forum-6.html)
+--- 主题: 讨论一下链接脚本和PIE (/thread-85.html)



讨论一下链接脚本和PIE - vimacs - 10-16-2019

这几天调固件遇到了不少关于链接脚本和PIE的问题,在把固件调通之后,还是有不少问题没搞明白。

binutils 里的链接脚本有一个 AT(laddr) 命令,可以把一个节(section)在重定位地址不变的情况下,改变装载地址(loader装载ELF文件之后该节所在地址),那么它对其他节的位置有什么影响,最后会怎么影响用objcopy生成给ROM使用的bin文件的大小?

此外在编译时加 -fPIE 生成的程序区别很大,在固件中没有一个和操作系统类似的loader的时候,用 -fPIE 很可能生成的代码是无法正确执行的。加载器到底是怎么处理PIE程序的?