跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有没有参数可以修改 linker 重定位符号的方式
未分類
15 6 月 2020

有没有参数可以修改 linker 重定位符号的方式

有没有参数可以修改 linker 重定位符号的方式

資深大佬 : liuminghao233 4

例如我有一个函数

其中 isr0 地址在使用 LD 和 LLD 定位的时候有不同的结果

set_intr_gate(0, 1, (void*)&isr0);  mov    0x0(%rip),%rax        # 385 <idt_init+0xb6> 

使用 ld 链接它会使用绝对地址 结果为

mov    $0x103645,%rax 

使用 LLD 的话又是另外一种情况 变成了

lea    0x89d(%rip),%rax        # 103645 <isr0> 

因为使在写系统内核 把 0x000000000000 开始的页表映射取消了 只留下 0xffffff8000000000 开始的内核也就是

0xffffff8000000000-0xffffff80005fffff -> 0x000000000000-0x0000005fffff 

RIP 也是加上了 0xffffff8000000000 的

使用 LD 得到的是 0x103645 需要把 isr0 地址加上 PAGE_OFFSET 不然会缺页

使用 LLD 的话它通过 RIP 寻址 isr0 就没必要加上 PAGE_OFFSET 了

有没有参数可以让 ld 按照 lld 那样取 resolve 符号?

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具