I have a 32 bit application built in Debian based OS that will crash on startup on CentOS 9 but runs on other distros. Someone said CentOS9 can’t run 32bit applications. Although the needed 32bit libraries are installed. It seems to be something in glibc
Program received signal SIGSEGV, Segmentation fault.
0xf7fcea09 in check_match (undef_name=undef_name@entry=0xf7acc0b6 "__udivdi3", ref=ref@entry=0xf7a968e8, version=version@entry=0xf71a8b70, flags=9, type_class=1,
sym=0x56556c74, symidx=418, strtab=0x56556cc4 "", map=0xf7ffdb70, versioned_sym=0xffffccac, num_versions=0xffffcca8) at dl-lookup.c:122
122 && map->l_versions[ndx].name[0] == '\0'
******************************************
******************************************
(gdb) bt
#0 0xf7fcea09 in check_match (undef_name=undef_name@entry=0xf7acc0b6 "__udivdi3", ref=ref@entry=0xf7a968e8, version=version@entry=0xf71a8b70, flags=9, type_class=1,
sym=0x56556c74, symidx=418, strtab=0x56556cc4 "", map=0xf7ffdb70, versioned_sym=0xffffccac, num_versions=0xffffcca8) at dl-lookup.c:122
#1 0xf7fcedc6 in do_lookup_x (undef_name=undef_name@entry=0xf7acc0b6 "__udivdi3", new_hash=new_hash@entry=4161312091, old_hash=old_hash@entry=0xffffcd3c, ref=0xf7a968e8,
result=0xffffcd44, scope=0xf7ffdcd0, i=<optimized out>, version=0xf71a8b70, flags=9, skip=0x0, type_class=1, undef_map=0xf7d6d5a0) at dl-lookup.c:457
#2 0xf7fcf634 in _dl_lookup_symbol_x (undef_name=0xf7acc0b6 "__udivdi3", undef_map=0xf7d6d5a0, ref=0xffffce0c, symbol_scope=<optimized out>, version=0xf71a8b70, type_class=1,
flags=9, skip_map=0x0) at dl-lookup.c:882
#3 0xf7fd4653 in elf_machine_rel (skip_ifunc=0, reloc_addr_arg=0xf7cb84b8, version=0xf71a8b70, sym=0xf7a968e8, reloc=0xf7b044fc, scope=<optimized out>, map=0xf7d6d5a0)
at ../sysdeps/i386/dl-machine.h:303
#4 elf_dynamic_do_Rel (skip_ifunc=<optimized out>, lazy=<optimized out>, nrelative=<optimized out>, relsize=<optimized out>, reladdr=<optimized out>, scope=<optimized out>,
map=0xf7d6d5a0) at /usr/src/debug/glibc-2.34-221.el9.i386/elf/do-rel.h:142
#5 _dl_relocate_object_no_relro (l=<optimized out>, scope=<optimized out>, reloc_mode=<optimized out>, consider_profiling=<optimized out>) at dl-reloc.c:283
#6 0xf7fd6269 in _dl_relocate_object (l=0xf7d6d5a0, scope=0xf7d6d768, reloc_mode=1, consider_profiling=0) at dl-reloc.c:333
#7 0xf7fe6245 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2499
#8 0xf7fe1b9f in _dl_sysdep_start (start_argptr=0xffffd210, dl_main=0xf7fe3af0 <dl_main>) at ../sysdeps/unix/sysv/linux/dl-sysdep.c:140
#9 0xf7fe359d in _dl_start_final (arg=0xffffd210) at rtld.c:503
#10 _dl_start (arg=<optimized out>) at rtld.c:588
#11 0xf7fe26fb in _start () from /lib/ld-linux.so.2
******************************************
******************************************
(gdb) where
#0 0xf7fcea09 in check_match (undef_name=undef_name@entry=0xf7acc0b6 "__udivdi3", ref=ref@entry=0xf7a968e8, version=version@entry=0xf71a8b70, flags=9, type_class=1,
sym=0x56556c74, symidx=418, strtab=0x56556cc4 "", map=0xf7ffdb70, versioned_sym=0xffffccac, num_versions=0xffffcca8) at dl-lookup.c:122
#1 0xf7fcedc6 in do_lookup_x (undef_name=undef_name@entry=0xf7acc0b6 "__udivdi3", new_hash=new_hash@entry=4161312091, old_hash=old_hash@entry=0xffffcd3c, ref=0xf7a968e8,
result=0xffffcd44, scope=0xf7ffdcd0, i=<optimized out>, version=0xf71a8b70, flags=9, skip=0x0, type_class=1, undef_map=0xf7d6d5a0) at dl-lookup.c:457
#2 0xf7fcf634 in _dl_lookup_symbol_x (undef_name=0xf7acc0b6 "__udivdi3", undef_map=0xf7d6d5a0, ref=0xffffce0c, symbol_scope=<optimized out>, version=0xf71a8b70, type_class=1,
flags=9, skip_map=0x0) at dl-lookup.c:882
#3 0xf7fd4653 in elf_machine_rel (skip_ifunc=0, reloc_addr_arg=0xf7cb84b8, version=0xf71a8b70, sym=0xf7a968e8, reloc=0xf7b044fc, scope=<optimized out>, map=0xf7d6d5a0)
at ../sysdeps/i386/dl-machine.h:303
#4 elf_dynamic_do_Rel (skip_ifunc=<optimized out>, lazy=<optimized out>, nrelative=<optimized out>, relsize=<optimized out>, reladdr=<optimized out>, scope=<optimized out>,
map=0xf7d6d5a0) at /usr/src/debug/glibc-2.34-221.el9.i386/elf/do-rel.h:142
#5 _dl_relocate_object_no_relro (l=<optimized out>, scope=<optimized out>, reloc_mode=<optimized out>, consider_profiling=<optimized out>) at dl-reloc.c:283
#6 0xf7fd6269 in _dl_relocate_object (l=0xf7d6d5a0, scope=0xf7d6d768, reloc_mode=1, consider_profiling=0) at dl-reloc.c:333
#7 0xf7fe6245 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2499
#8 0xf7fe1b9f in _dl_sysdep_start (start_argptr=0xffffd210, dl_main=0xf7fe3af0 <dl_main>) at ../sysdeps/unix/sysv/linux/dl-sysdep.c:140
#9 0xf7fe359d in _dl_start_final (arg=0xffffd210) at rtld.c:503
#10 _dl_start (arg=<optimized out>) at rtld.c:588
#11 0xf7fe26fb in _start () from /lib/ld-linux.so.2
(gdb)
Here’s the ldd for CentOS 9:
linux-gate.so.1 (0xf7f22000)
libXcursor.so.1 => /lib/libXcursor.so.1 (0xf7c17000)
libXfixes.so.3 => /lib/libXfixes.so.3 (0xf7c0f000)
libXext.so.6 => /lib/libXext.so.6 (0xf7bf8000)
libXft.so.2 => /lib/libXft.so.2 (0xf7bdd000)
libfontconfig.so.1 => /lib/libfontconfig.so.1 (0xf7b8a000)
libXinerama.so.1 => /lib/libXinerama.so.1 (0xf7b85000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf7b80000)
libdl.so.2 => /lib/libdl.so.2 (0xf7b7b000)
libX11.so.6 => /lib/libX11.so.6 (0xf7a21000)
libpng16.so.16 => /lib/libpng16.so.16 (0xf79e4000)
librt.so.1 => /lib/librt.so.1 (0xf79dd000)
libzstd.so.1 => /lib/libzstd.so.1 (0xf7931000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7702000)
libm.so.6 => /lib/libm.so.6 (0xf7637000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7619000)
libc.so.6 => /lib/libc.so.6 (0xf7421000)
libXrender.so.1 => /lib/libXrender.so.1 (0xf7413000)
libfreetype.so.6 => /lib/libfreetype.so.6 (0xf734e000)
libxml2.so.2 => /lib/libxml2.so.2 (0xf71af000)
libxcb.so.1 => /lib/libxcb.so.1 (0xf7181000)
libz.so.1 => /lib/libz.so.1 (0xf7167000)
/lib/ld-linux.so.2 (0xf7f24000)
libbz2.so.1 => /lib/libbz2.so.1 (0xf7153000)
libharfbuzz.so.0 => /lib/libharfbuzz.so.0 (0xf7077000)
libbrotlidec.so.1 => /lib/libbrotlidec.so.1 (0xf7069000)
liblzma.so.5 => /lib/liblzma.so.5 (0xf703a000)
libXau.so.6 => /lib/libXau.so.6 (0xf7034000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xf6ede000)
libgraphite2.so.3 => /lib/libgraphite2.so.3 (0xf6ebd000)
libbrotlicommon.so.1 => /lib/libbrotlicommon.so.1 (0xf6e9a000)
libpcre.so.1 => /lib/libpcre.so.1 (0xf6e1f000)
Here’s the ldd for Ubuntu 2404lts
linux-gate.so.1 (0xf365f000)
libXcursor.so.1 => /lib/i386-linux-gnu/libXcursor.so.1 (0xf3351000)
libXfixes.so.3 => /lib/i386-linux-gnu/libXfixes.so.3 (0xf3349000)
libXext.so.6 => /lib/i386-linux-gnu/libXext.so.6 (0xf3333000)
libXft.so.2 => /lib/i386-linux-gnu/libXft.so.2 (0xf3318000)
libfontconfig.so.1 => /lib/i386-linux-gnu/libfontconfig.so.1 (0xf32c4000)
libXinerama.so.1 => /lib/i386-linux-gnu/libXinerama.so.1 (0xf32bf000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf32ba000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf32b5000)
libX11.so.6 => /lib/i386-linux-gnu/libX11.so.6 (0xf3163000)
libpng16.so.16 => /lib/i386-linux-gnu/libpng16.so.16 (0xf3124000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf311f000)
libzstd.so.1 => /lib/i386-linux-gnu/libzstd.so.1 (0xf3062000)
libstdc++.so.6 => /lib/i386-linux-gnu/libstdc++.so.6 (0xf2de3000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf2cd9000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf2ca1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf2a65000)
libXrender.so.1 => /lib/i386-linux-gnu/libXrender.so.1 (0xf2a57000)
libfreetype.so.6 => /lib/i386-linux-gnu/libfreetype.so.6 (0xf2983000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf2957000)
libxcb.so.1 => /lib/i386-linux-gnu/libxcb.so.1 (0xf2927000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf290b000)
/lib/ld-linux.so.2 (0xf3661000)
libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xf28f9000)
libbrotlidec.so.1 => /lib/i386-linux-gnu/libbrotlidec.so.1 (0xf28eb000)
libXau.so.6 => /lib/i386-linux-gnu/libXau.so.6 (0xf28e6000)
libXdmcp.so.6 => /lib/i386-linux-gnu/libXdmcp.so.6 (0xf28df000)
libbrotlicommon.so.1 => /lib/i386-linux-gnu/libbrotlicommon.so.1 (0xf28bc000)
libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf28a6000)
libmd.so.0 => /lib/i386-linux-gnu/libmd.so.0 (0xf2894000)
On the system that builds it:
GNU C Library (Debian GLIBC 2.31-13+deb11u13) stable release version 2.31