Summary: | clang: wrong dynamic linker on aarch64 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Chikunov <vt> |
Component: | clang6.0 | Assignee: | Konstantin A Lepikhov (L.A. Kostis) <lakostis> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | glebfm, lav |
Version: | unstable | ||
Hardware: | aarch64 | ||
OS: | Linux |
Description
Vitaly Chikunov
2018-06-13 09:21:39 MSK
Пока придумал сделать так: %ifarch aarch64 objcopy --dump-section .interp=/tmp/interp /bin/ls /dev/null objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bps %if_with luajit objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bcc-lua %endif %endif Ты повесил багу когда она уже была исправлена но исправление ещё не добралось до Сизифа: * Tue Jun 12 2018 Gleb F-Malinovskiy <glebfm@altlinux.org> 6.0.0-alt0.8.rel - lld: backported upstream patch implementing --{push,pop}-state support. - clang: changed default dynamic linker path for aarch64 architecture. - aarch64: temporarily rebuilt with gcc to fix build from source. - clang-alt-triple.patch: added mipsel and mips64el triplets. (In reply to comment #1) > Пока придумал сделать так: > > %ifarch aarch64 > objcopy --dump-section .interp=/tmp/interp /bin/ls /dev/null > objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bps > %if_with luajit > objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bcc-lua > %endif > %endif А Wl,-dynamic-linker передать не проще? (In reply to comment #3) > (In reply to comment #1) > > Пока придумал сделать так: > > > > %ifarch aarch64 > > objcopy --dump-section .interp=/tmp/interp /bin/ls /dev/null > > objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bps > > %if_with luajit > > objcopy --update-section .interp=/tmp/interp %buildroot/usr/bin/bcc-lua > > %endif > > %endif > > А Wl,-dynamic-linker передать не проще? export LDFLAGS="-fuse-ld=lld -Wl,-dynamic-linker /lib64/ld-linux-aarch64.so.1" Так тоже сработало. (Не с первого раза, конечно, так как lld не поддерживает `=` в этой опции). (FYI: Правда, bcc все равно как-то не так собрался, но это уже другая история.) Также в glibc-ore добавлен симлинк /lib/ld-linux-aarch64.so.1 https://bugzilla.altlinux.org/37641 |