On 2022-11-22 John Paul Adrian Glaubitz wrote: > Does anyone have a clue why this particular change may have broken > the linking on ia64?
Thanks for your report. This is important to fix. What do these commands print? Fix the path to liblzma.so.5 if needed. readelf --dyn-syms -W /lib/liblzma.so.5 \ | grep lzma_get_progress readelf --dyn-syms -W /lib/liblzma.so.5 \ | grep lzma_stream_encoder_mt_memusage The first should print 2 lines and the second 3 lines. The rightmost columns should be like these: FUNC GLOBAL DEFAULT 11 lzma_get_progress@@XZ_5.2 FUNC GLOBAL DEFAULT 11 lzma_get_progress@XZ_5.2.2 FUNC GLOBAL DEFAULT 11 lzma_stream_encoder_mt_memusage@@XZ_5.2 FUNC GLOBAL DEFAULT 11 lzma_stream_encoder_mt_memusage@XZ_5.1.2alpha FUNC GLOBAL DEFAULT 11 lzma_stream_encoder_mt_memusage@XZ_5.2.2 Pay close attention to @ vs. @@. The XZ_5.2 must be the ones with @@. If you see the same as above then I don't have a clue. By any chance, was XZ Utils built with GCC older than 10 using link-time optimization (LTO, -flto)? As my commit message describes and NEWS warns, GCC < 10 and LTO will not produce correct results due to the symbol versions. It should work fine with GCC >= 10 or Clang. For what it is worth, when I wrote the patch I tested it on on Slackware 10.1 (32-bit x86) that has GCC 3.3.4 and it worked perfectly there. This symbol version stuff isn't a new thing so it really should work. -- Lasse Collin