3 ms·
Kefir doesn't seem to work out of the box on my machine. I have glibc (libc6) version 2.31-13+deb11u6 installed. The linker is missing the symbol dl_iterate_p
by 1718627440 1y ago
Kefir doesn't seem to work out of the box on my machine. I have glibc (libc6) version 2.31-13+deb11u6 installed. The linker is missing the symbol dl_iterate_phdr. Do I need to set some special flags for it to work?
ld: /usr/lib/gcc/x86_64-linux-gnu/10//libgcc_eh.a(unwind-dw2-fde-dip.o): in function `_Unwind_Find_FDE':
(.text+0x203d): undefined reference to `dl_iterate_phdr'
The linker invocation is:
ld -o a.out -no-pie /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu//crt1.o /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu//crti.o /usr/lib/gcc/x86_64-linux-gnu/10//crtbegin.o --dynamic-linker /lib64/ld-linux-x86-64.so.2 /tmp/kefir-155672-5mB4xo/object-file.0.UGboRo -l c -L /usr/lib/gcc/x86_64-linux-gnu/10/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/10/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/../lib/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/10/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/ -L /lib/x86_64-linux-gnu/10/ -L /lib/x86_64-linux-gnu/ -L /lib/../lib/ -L /usr/lib/x86_64-linux-gnu/10/ -L /usr/lib/x86_64-linux-gnu/ -L /usr/lib/../lib/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/ -L /usr/lib/gcc/x86_64-linux-gnu/10/../../../ -L /lib/ -L /usr/lib/ -lc -lm --push-state --as-needed -latomic --no-as-needed --pop-state -ldl -lgcc -lgcc_eh /usr/lib/gcc/x86_64-linux-gnu/10//crtend.o /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu//crtn.o
- 1718627440 1y agoUpon researching that, I got some questions. Why does kefir use the shell to invoke itself? Why does it look for its library under /usr/local/bin/../lib/tls/x86_64/x86_64/libkefir.so ? Shouldn't it know where its supposed to be from the build configuration? Is it intended, that it access a file after trying to unlink it? unlink("/tmp/kefir-154946-hu9HGw") = -1 EISDIR (Is a directory) rmdir("/tmp/kefir-154946-hu9HGw") = 0 access("/tmp/kefir-154946-hu9HGw/object-file.0.ivTxnw", F_OK) = -1 ENOENT (No such file or directory)
- throwaway192454 1y agoKefir build artifact is fully portable and agnostic to installation location. DESTDIR, prefix, etc are simply interpolated into launch script (template is here: https://git.sr.ht/~jprotopopov/kefir/tree/master/item/scripts/kefir.m4 https://git.sr.ht/~jprotopopov/kefir/tree/master/item/script...). So, no kefir binary itself does not know or care where it is installed, it gathers the information the environment variables provided by launch script. The reason is that kefir supports portable builds which could be unpacked anywhere, so these path might even be relative.
- throwaway192454 1y agoCan you provide me with more details of your system configuration? Dockerfile, ideally. Please send me an email.