重命名符号失败并出现错误
Renaming symbols fails with errors
我已经安装了新的 glib 库版本 2.6,创建后我试图使用 objcopy
命令重命名 glib 库中的一些符号。重命名符号对于我们的项目支持是必要的。
失败并出现以下错误
objcopy --redefine-syms=glibrename libglib-2.0.a
BFD: libglib-2.0.a(deprecated_gcompletion.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
glibrename
是一个文件,其中定义了所有 glib 原始符号并重命名了我想做的符号。
示例文件内容为:
glib_melloc test_glib_melloc
glib_sym test_glib_sym
这是我的 objcopy
版本:
[kltest@il-kltest ~]$ objcopy --version
GNU objcopy version 2.20.51.0.2-5.36.el6 20100205
Copyright 2009 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
任何人请帮助我为什么遇到这个问题,有什么想法吗?
恐怕 Binutils 2.20 太旧了。 (已经 9 岁了。)关于 v2.25 /.26 引入了对重定位类型 42 的支持。
我已经安装了新的 glib 库版本 2.6,创建后我试图使用 objcopy
命令重命名 glib 库中的一些符号。重命名符号对于我们的项目支持是必要的。
失败并出现以下错误
objcopy --redefine-syms=glibrename libglib-2.0.a
BFD: libglib-2.0.a(deprecated_gcompletion.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
BFD: BFD version 2.20.51.0.2-5.36.el6 20100205 assertion fail elf64-x86-64.c:290
BFD: libglib-2.0.a(deprecated_gthread-deprecated.c.o): invalid relocation type 42
glibrename
是一个文件,其中定义了所有 glib 原始符号并重命名了我想做的符号。
示例文件内容为:
glib_melloc test_glib_melloc
glib_sym test_glib_sym
这是我的 objcopy
版本:
[kltest@il-kltest ~]$ objcopy --version
GNU objcopy version 2.20.51.0.2-5.36.el6 20100205
Copyright 2009 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
任何人请帮助我为什么遇到这个问题,有什么想法吗?
恐怕 Binutils 2.20 太旧了。 (已经 9 岁了。)关于 v2.25 /.26 引入了对重定位类型 42 的支持。