我有一个项目,我需要删除 ELF 文件的一部分并将其替换为内容稍作修改的另一部分。我能够首先删除原始部分,然后使用 objcopy 添加我想要的部分。但我总是收到以下警告:
warning: allocated section `.nv_fatbin' not in segment
这会导致该部分未加载到内存中,因此无法实现所需的功能。
添加它并将其带回细分市场的最佳方法是什么?
自由?或者这也可以使用 objcopy 来实现?
您可能想要使用 objcopy 的--update-section
选项。
摘自 objcopy 手册(https://sourceware.org/binutils/docs/binutils/objcopy.html):
--update-section sectionname=文件名
将名为 sectionname 的部分的现有内容替换为文件 filename 的内容。该部分的大小将调整为文件的大小。sectionname 的部分标志将保持不变。对于 ELF 格式文件,段到段的映射也将保持不变,这在使用 --remove-section 后跟 --add-section 是不可能的。可以多次指定该选项。
注意:这需要 binutils v2.26 或更高版本。