将符号链接到Linux上的固定地址
发布时间:2020-05-27 15:20:47 所属栏目:Linux 来源:互联网
导读:如何使用GNU ld将链接(某些)符号链接到特定的固定地址,以便二进制文件仍然可以在 Linux(x86)中正常执行?不会访问这些符号,但是它们的地址很重要. 例如,我将具有以下结构: struct FooBar { Register32 field_1; Register32 field_2; //...};struct FooBar fo
|
如何使用GNU ld将链接(某些)符号链接到特定的固定地址,以便二进制文件仍然可以在 Linux(x86)中正常执行?不会访问这些符号,但是它们的地址很重要. 例如,我将具有以下结构: struct FooBar {
Register32 field_1;
Register32 field_2;
//...
};
struct FooBar foobar;
我想将foobar链接到地址0x76543210,但通常链接标准库和应用程序的其余部分.然后应用程序将使用foobar的地址,但不会引用它后面的(可能不存在的)内存. 这个请求的理由是,同一个源可以在两个平台上使用:在本地平台上,Register32可以简单地是一个易失性的uint32_t,但是在Linux上,Register32是一个与uint32_t大小相同的C对象,operator =,然后使用对象的地址,并向具有该地址(和数据)的通信框架发送请求,以执行远程硬件上的实际访问.因此,链接器将确保结构的Register32字段指向正确的“地址”. 解决方法litb使用–defsym symbol = address的建议可以正常工作,但是当您有几十个这样的实例来映射时,它有点麻烦.然而,–just-symbols = symbolfile只是窍门.花了我一段时间找出符号文件的语法symbolname1 = address; symbolname2 = address; ... 空格似乎是必需的,否则ld报告文件格式不被识别;作为链接器脚本. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – 保护新的Ubuntu服务器
- linux – 在启用了NX(DEP)和ASLR的x86-64上利用基于字符串的
- redhat – yum与Red Hat Network Subscription如何在rhel D
- 如何在Linux中运行程序并了解其PID?
- linux – Debian:通过蓝牙转发登录控制台
- linux – 将Sublime Text 2添加到Ubuntu 12.04中的右键单击
- linux – 使用perl读取系统文件,而不在打开时发出额外的搜索
- linux – 如何查找具有给定扩展名的所有文件名
- linux – Docker容器立即退出
- linux – Linode Distro(如何选择?)64位?
推荐文章
站长推荐
热点阅读
