I am debugging a "foreign" ARMHF binary on a Raspberry Pi 3
(running Bookworm in 64-bit mode, arm64).
$ strace /lib/ld-linux.armhf.so.3 /opt/victronenergy/hub4control/hub4control
execve("/lib/ld-linux.armhf.so.3", ["/lib/ld-linux.armhf.so.3", "/opt/victronenergy/hub4control/h"...], 0xffffcc00d598 /* 27 vars */ <unfinished ...>
[ Process PID=93013 runs in 32 bit mode. ]
strace: WARNING: Proper structure decoding for this personality is not supported, please consider building strace with mpers support enabled.
Thus, please enable mpers support if possible.
Control: tags -1 + patch A customer of mine ran into this issue. For most architectures, mpers support is enabled via multilib and the gcc-multilib dependency. ARM architectures are notably missing here. Looking into the configure script, it becomes apparent that arm64 is treated differently. This presumably is due to to Debian (and others) not providing multilib support for arm64. Instead, a cross compiler is tried. The only piece missing here is providing that cross compiler during build. So here is a patch adding those dependencies and once you do, you get mpers32 support. For a trixie strace I see | strace: WARNING: Proper structure decoding for this personality is not supported, please consider building strace with mpers support enabled. and strace -V says | Optional features enabled: no-m32-mpers but with the attached patch, the message goes missing and strace -V says | Optional features enabled: m32-mpers so that it likely just works. Longer term, we'd like to get rid of the gcc-multilib binary package, so all architectures should be working the way arm64 is handled already. Helmut
Control: tags -1 + patch A customer of mine ran into this issue. For most architectures, mpers support is enabled via multilib and the gcc-multilib dependency. ARM architectures are notably missing here. Looking into the configure script, it becomes apparent that arm64 is treated differently. This presumably is due to to Debian (and others) not providing multilib support for arm64. Instead, a cross compiler is tried. The only piece missing here is providing that cross compiler during build. So here is a patch adding those dependencies and once you do, you get mpers32 support. For a trixie strace I see | strace: WARNING: Proper structure decoding for this personality is not supported, please consider building strace with mpers support enabled. and strace -V says | Optional features enabled: no-m32-mpers but with the attached patch, the message goes missing and strace -V says | Optional features enabled: m32-mpers so that it likely just works. Longer term, we'd like to get rid of the gcc-multilib binary package, so all architectures should be working the way arm64 is handled already. Helmut