binutils bfd链接系统iberty而不是内置的iberty

时间:2013-08-29 09:18:13

标签: makefile configure libtool binutils

构建binutils时,bfd组件无法链接,因为它链接到libiberty的系统版本而不是binutuils / libiberty / lib64 / libiberty.a下的构建版本。

我看不到配置参数允许我覆盖它。指示configure构造LD_LIBRARY_PATH的最佳方法是什么,该LD_LIBRARY_PATH优先于其构建的其他组件的库而不是系统版本?显然,它需要系统库作为先决条件,因此我不能完全排除这条路径。

由于系统版本未正确编译,这是错误。 binutils/libiberty/lib64下的版本是用-fPIC编译的,所以我需要告诉configure使用它。

/lib64/libiberty.a(cplus-dem.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC

指定.:/usr/lib64:/lib64似乎并不简单,因为.binutils/bfd

1 个答案:

答案 0 :(得分:0)

我查看了生成的automakefile,LDFLAGS只指定了系统库:

LDFLAGS := -L/usr/lib64 -L/usr/lib

所以我将其指定为配置的参数。稍微hacky,但看不出更好的出路:

LDFLAGS="-L./ -L../ -L../libiberty/pic -L/usr/lib64 -L/usr/lib" ./confgiure --enable-shared