LINUX.ORG.RU

zlib не собирается с musl-clang

 , , , ,


0

1
/home/uname/Документы/Development/llvm-linux/dev/bin/musl-clang -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.8
clang: warning: argument unused during compilation: '-nostdinc'
/usr/bin/ld: h_errno: TLS-определение в /lib/x86_64-linux-gnu/libc.so.6 раздела .tbss не совпадает с не-TLS определением в /home/uname/Документы/Development/llvm-linux/dev/lib/libc.so раздела .bss
/lib/x86_64-linux-gnu/libc.so.6: error adding symbols: Некорректное значение
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:176: ошибка выполнения рецепта для цели «examplesh»
make: *** [examplesh] Ошибка 1

Почему он линкует с libc.so.6, а не ld-musl-x86_64.so.1? Всякие helloworld'ы собираются нормально. Даже libarchive собрался.

★★★★★
Ответ на: комментарий от uuwaan

А почему именно clang?

Потому что nonGNU Linux.
Но тут именно линковщик из GNU binutils делает какие-то странные вещи.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от uuwaan

Наверное, мсье большой гурман.

Deleted
()
Ответ на: комментарий от CYB3R

Это clang делает с линковщиком какие-то странные вещи. Вызывает без нужных параметров, по всей видимости, вот и идёт он в libc смотреть. Вообще, наверное, лучше будет собрать тулчейн под нужную архитектуру и musl. Я нифига не большой эксперт в этом деле, но вот есть такой скрипт, который автоматом собирает тулчейн с gcc. Теоретисесски, этим тулчейном можно собрать clang и заинсталлить его внутрь того же тулчейна. В итоге получим clang, который ходит за правильными либами и ld, который и без параметров дополнительных тоже в правильные места ходит.

uuwaan ★★
()
Ответ на: комментарий от uuwaan

Всё, вопрос снят. Это я дурак.
Делал:

./configure
make CC=musl-clang
Теперь сделал CC=musl-clang ./configure && make, всё работает.

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.