Я иду изСоздание цепочки инструментов для использования с eCos и я дошел до того момента, когда настраиваю и собираю инструменты для binutils:
./configure --target=arm-elf --prefix=../gnutools -v &> configure.out2
make -w all install &> make.out
но когда я запускаю make, я получаю эту ошибку:
libtool: link: only absolute run-paths are allowed
Похоже, libtool пытается собрать библиотеку /bfd/libbfd.a, используя несуществующий -rpath:
libtool --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o libopcodes.la -rpath ../gnutools/x86_64-unknown-linux-gnu/arm-elf/lib -release 2.13.1 dis-buf.lo disassemble.lo arm-dis.lo
поэтому, чтобы обойти это, я устанавливаю и перевожу переменную LIBDIR в каталог lib, который, как я предполагаю, он ищет:
LIBDIR=/home/dan/dev/arm/crosstool/gcc-4.0.1-glibc-2.3.5/arm-linux/arm-linux/lib
и запустить скрипт bash, который вызывает libtool с указанными выше параметрами, за исключением того, что -rpath установлен в $LIBDIR, и он делает библиотеку libbfd.a нормальной. Затем я запускаю make, и он пытается создать библиотеку для каталога opcodes и имеет ту же проблему. Как мне установить -rpath в скрипте configure? Или даже установить его, отредактировав Makefile?
решение1
В вашем ./configure есть --prefix=../gnutools
и должно быть --prefix=/gnutools
. Он хочет абсолютный путь, а не ..относительный.