I have two x86_64 systems with UM 22.04.3.
One started at 14.04 and has been upgrade all the way to 22.04 the other is a fresh install.
The upgrade system did have multiarch support for i386 installed and working but within the last year that has stopped working. I stopped work on my Tandy Color Computer cross development for just one year and come back and find this
The fresh install also doesn't run any of the previous 32 bit executables.
My systems show :
dpkg --print-foreign-architectures
i386
apt list --installed 'libc6*'
Listing... Done
libc6-dbg/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 amd64 [installed,automatic]
libc6-dev-i386-cross/jammy,jammy,now 2.35-0ubuntu1cross3 all [installed,automatic]
libc6-dev/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 amd64 [installed,automatic]
libc6-dev/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 i386 [installed,automatic]
libc6-i386-cross/jammy,jammy,now 2.35-0ubuntu1cross3 all [installed,automatic]
libc6-x32/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 amd64 [installed]
libc6/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 amd64 [installed,automatic]
libc6/jammy-updates,jammy-security,now 2.35-0ubuntu3.6 i386 [installed]
file ./dcc
./dcc: ELF 32-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libx32/ld-linux-x32.so.2, BuildID[sha1]=f013fd779c051af94c5c89349cabbb6f3b279379, for GNU/Linux 3.4.0, with debug_info, not stripped
ls -l /libx32/ld-linux-x32.so.2
-rwxr-xr-x 1 root root 225864 Jan 2 21:22 /libx32/ld-linux-x32.so.2
readelf -d ./dcc | grep NEEDED
0x00000001 (NEEDED) Shared library: [libc.so.6]
ls -l /libx32/libc.so.6
-rwxr-xr-x 1 root root 2280756 Jan 2 21:22 /libx32/libc.so.6
So everything that is require seems to be present but it no longer works on either the upgraded system or the fresh install.
I can't seem to find official Ubuntu (Mate) documentation for MultiArch so I'm not sure what I'm missing or what to diagnose check.
Might help if I show the error:
./dcc
bash: ./dcc: cannot execute binary file: Exec format error
Or if I try manually:
/libx32/ld-linux-x32.so.2 ./dcc
./dcc: error while loading shared libraries: ./dcc: cannot open shared object file: No such file or directory
cat /etc/ld.so.conf.d/*.conf
/usr/lib/x86_64-linux-gnu/libfakeroot
# Multiarch support
/usr/local/lib/i386-linux-gnu
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/usr/local/lib/i686-linux-gnu <-- doesn't exist
/lib/i686-linux-gnu <-- doesn't exist
/usr/lib/i686-linux-gnu <-- doesn't exist
# libc default configuration
/usr/local/lib
# Multiarch support
/usr/local/lib/x86_64-linux-gnu <-- doesn't exist
/lib/x86_64-linux-gnu <-- doesn't exist
/usr/lib/x86_64-linux-gnu
# Legacy biarch compatibility support
/lib32
/usr/lib32
# Legacy biarch compatibility support
/libx32
/usr/libx32
And I have a fresh install of Armbian X64 which can run the 32 executables that were compiled on the Ubuntu Mate system. Eliminating the 32 bit binaries have somehow become corrupted.
Any ideas?