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

Reply via email to