эти флаги, я не понимаю, как какать. Рассчитываю, что для тех, кто разбирается в этих флагах, тут все тривиально.
Вот факты.
Результат от ldd:
$ ldd libguile-ssh.so
/usr/bin/ldd (0x7fa7625c6000)
libssh.so.4 => /usr/lib/libssh.so.4 (0x7fa76253b000)
[...]
libc.so => /usr/bin/ldd (0x7fa7625c6000)
[...]
Error relocating libguile-ssh.so: backtrace: symbol not found
Error relocating libguile-ssh.so: backtrace_symbols: symbol not found
Результат readelf:
$ readelf -s /usr/lib/libexecinfo.so.1 | grep backtrace
17: 000000000000d980 481 FUNC GLOBAL DEFAULT 9 backtrace_symbols
19: 000000000000db70 752 FUNC GLOBAL DEFAULT 9 backtrace_symbols_fd
20: 000000000000d920 89 FUNC GLOBAL DEFAULT 9 backtrace
Я так понимаю, мне нужно где-то упомянуть libexecinfo, но я даже не понимаю,
- компилятору или линкеру,
- а как вообще? какие флаги, и .so или .a?
Примерно ничего не понимаю в этих флагах, потыкал вот так:
libtool: link: x86_64-gentoo-linux-musl-gcc -shared -fPIC -DPIC (тут .o файлы) -lssh -lguile-3.0 -latomic_ops -lgc -lpthread -ldl -Wl,--as-needed -march=native -O2 -Wl,-O1 -Wl,-z -Wl,libexecinfo.so.1 -Wl,--export-dynamic -Wl,-soname -Wl,libguile-ssh.so.14 -o .libs/libguile-ssh.so.14.1.3
/usr/lib/gcc/x86_64-gentoo-linux-musl/11.2.0/../../../../x86_64-gentoo-linux-musl/bin/ld: warning: -z libexecinfo.so.1 ignored
Полный путь тоже пробовал, то же самое.
Мне подсказали -lexecinfo — собирается. 🎉 Теперь в рантайме буду проверять.
Обсуждают сегодня