GNU链接器移植/编译过程

本文详细记录了在Ubuntu 14上移植和编译GNU Binutils 2.25的过程,特别是针对MIPS架构的链接器。内容包括编译遇到的版本问题、源代码的修改部分,如elf32-mips.c、elfxx-mips.c和elfxx-mips.h,并提供了完整的编译步骤。此外,还介绍了如何验证链接器的功能,如地址映射、空间分配和符号解析。
摘要由CSDN通过智能技术生成

## Ubuntu版本

    ```
    14版本编译通过,对于gcc版本为4
    16版本我试过会因为一些库不兼容导致编译不通过
    18未知
    ```
    
## GNU Binutils版本
    ```
    2.25版本编译通过,个人认为Binutils2.25和Ubuntu14最搭,不排除其他搭配方式
    2.24版本据上一届师兄说也可以编译通过
    2.21 2.31版本编译不通过
    其他版本未知
    ```

## 源代码/文件修改

- elf32-mips.c

    ```
    位置:binutils-2.25/bfd/
    功能:有关链接器符号重定位功能,主要包含HOWTO结构体,修改/增加了以下四种
    R_MIPS_PC21_S2->相对PC偏移调用函数
    R_MIPS_32->指针引用
    R_MIPS_HI16->置高十六位
    R_MIPS_LO16->置低十六位
    我已经使用符号"ppp"标出
    ```

- elfxx-mips.c

    ```
    位置:binutils-2.25/bfd/
    功能:使用HOWTO结构和打印信息
    和binutils-2.25源文件的对比:可以用beyongd Compare软件对比
                                 我已经使用符号"ppp"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值