Связывание с библиотеками набора инструментов без их установки.Linux

Ответить
Anonymous
 Связывание с библиотеками набора инструментов без их установки.

Сообщение Anonymous »

Я пытаюсь создать цепочку инструментов build=x86_64, host=target=arm с помощью crosstool-ng.
Я хочу широко связать двоичные файлы с этой цепочкой инструментов, не меняя библиотеки в rootfs.
Мне удалось скомпилировать набор инструментов и запустить его на хосте.
После того, как путь указан на каталог bin TC, gcc создает рабочие статически связанные двоичные файлы:

Код: Выделить всё

# arm-kobo-linux-gnueabihf-gcc ./helloworld.c -static -o helloworld
# ./helloworld
Hello, world!
Динамическое связывание не работает:

Код: Выделить всё

# export TCROOT="/usr/local/tc/arm-kobo-linux-gnueabihf"
# export PATH="$TCROOT/bin:$PATH"
# export SYSROOT="$TCROOT/arm-kobo-linux-gnueabihf/sysroot"
# arm-kobo-linux-gnueabihf-gcc ./helloworld.c -o helloworld
# LD_LIBRARY_PATH=$SYSROOT/lib ./helloworld
./helloworld: relocation error: /usr/local/tc/arm-kobo-linux-gnueabihf/arm-kobo-linux-gnueabihf/sysroot/lib/libc.so.6: symbol __nptl_set_robust_list_avail, version GLIBC_PRIVATE not defined in file ld-linux-armhf.so.3 with link time references

Код: Выделить всё

$SYSROOT/lib/libc.so.6
ищет символы в /lib, а не в $SYSROOT/lib.
Если я использую chroot в $SYSROOT, то это нестатический helloworld работает.
Как мне использовать или воссоздать эту цепочку инструментов, чтобы созданные двоичные файлы ссылались на библиотеки цепочки инструментов, а не на библиотеки /lib, не полагаясь на chroot?

Подробнее здесь: https://stackoverflow.com/questions/793 ... lling-them
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»