Package: musl
Version: 1.2.5-1
Severity: normal
Tags: upstream
X-Debbugs-Cc: [email protected], [email protected]
On m68k (ARAnyM Atari TT/Falcon VM):
root@aranym:~ # cat t.c
#include <stdio.h>
int main(void) {
printf("main = 0x%lX\n", (unsigned long)main);
return (0);
}
root@aranym:~ # musl-gcc -fPIE -static -static-pie -fno-lto -o t t.c
root@aranym:~ # file t
t: ELF 32-bit MSB pie executable, Motorola m68k, 68020, version 1 (SYSV),
static-pie linked, with debug_info, not stripped
root@aranym:~ # ./t
Segmentation fault
139|root@aranym:~ # musl-gcc -fPIE -static-pie -fno-lto -o t t.c
root@aranym:~ # file t
t: ELF 32-bit MSB pie executable, Motorola m68k, 68020, version 1 (SYSV),
static-pie linked, with debug_info, not stripped
root@aranym:~ # ./t
Segmentation fault
The same test program in a qemu-user-based sh4 buildd:
main = 0x400006A4
main = 0x400006A4
main = 0x400006A4
On amd64, arm64, armel, armhf, i386, loong64, mips64el¹, ppc64el,
riscv64 and s390x, it DTRT.
① with a manual hack due to the still-existing musl-gcc wrapper bug:
muslspec=$topdir/xmusl.spec
case $DEB_HOST_ARCH in
(mipsel) cat /usr/lib/mipsel-linux-musl/musl-gcc.specs ;;
(mips64el) cat /usr/lib/mips64el-linux-musl/musl-gcc.specs ;;
esac >"$muslspec" || exit 255
printf '%s\n' 1a '%rename cc1 old_cc1' . \
'/^[*]cc1:/+1s/^/%(old_cc1) /' w q | \
ed -s "$muslspec" || exit 255
test -s "$muslspec" || exit 255
muslgcc="$CC -specs $muslspec"
-- System Information:
Debian Release: trixie/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: m68k
Kernel: Linux 6.6.15-m68k (UP)
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/lksh
Init: sysvinit (via /sbin/init)
-- no debconf information