Dear all,
I have a problem with XZ compiled with EB and the one from Rocky 9.
When I load my Python/3.11.1-GCCcore-10.3.0-jupyter-4.0 module I get errors
from the os:
# flatpak
flatpak: symbol lookup error: /lib64/librpmio.so.9: undefined symbol:
lzma_stream_encoder_mt, version XZ_5.2
# ldd /lib64/librpmio.so.9
[...]
liblzma.so.5 =>
/apps/prod/easybuild/sl7.x86_64.foss-2021a/software/XZ/5.2.5-GCCcore-10.3.0/lib/liblzma.so.5
(0x00007f993163c000)
the symbol is there but, as you can see, it's listed twice, first in the
static table and then in the dynamic static table:
# objdump -tT
/apps/prod/easybuild/sl7.x86_64.foss-2021a/software/XZ/5.2.5-GCCcore-10.3.0/lib/liblzma.so.5|grep
lzma_stream_encoder_mt
000000000000a020 g F .text 0000000000000100
lzma_stream_encoder_mt_memusage
0000000000009fb0 g F .text 000000000000006a
lzma_stream_encoder_mt
000000000000a020 g DF .text 0000000000000100 XZ_5.1.2alpha
lzma_stream_encoder_mt_memusage
0000000000009fb0 g DF .text 000000000000006a XZ_5.1.2alpha
lzma_stream_encoder_mt
the problems seems to be that the version from the static table is missing.
if I compare my compilation with the one from Rocky:
# objdump -tT /lib64/liblzma.so.5|grep lzma_stream_encoder_mt
00000000000101d0 g DF .text 00000000000000f9 XZ_5.2
lzma_stream_encoder_mt_memusage
0000000000010150 g DF .text 0000000000000072 XZ_5.2
lzma_stream_encoder_mt
they have all the symbols in the dyanmic table (no static table at all) and
all with vesions.
question here, as I'm not an expert on this, what should be the best
approach to solve this issue? remove all symbols from static table or add
versions to the objects in the static table? I don't really understand the
implicatiopns of one or the other option...
Thanks,
Arnau