On Sun, Jun 08, 2025 at 11:10:38AM +1000, Finn Thain wrote: > > On Sat, 7 Jun 2025, John Paul Adrian Glaubitz wrote: > > > On Fri, 2025-06-06 at 20:20 +1000, Finn Thain wrote: > > > Whereas, the ability to use old binaries is proof that we care about > > > rule #1 don't break userspace. > > > > Who is "we"? > > AFAICT, it's essentially everyone who contributes patches at the userspace > interfaces.
Since this thread also hit a non-Linux lists I just want to point out that we (as in: NetBSD) did not break userland when adapting the SVR4 ABI including different alignment for ELF. I just tested it with some original 1994 NetBSD 1.0 / amiga binaries on an amiga running NetBSD-current as of earlier today. I started with an empty ~/aout_test directory. I slightly shortened the lengthy and boring download sequence in the log (back then distributions were optimized for transport via floopies - duh!) --8<-- [~/aout_test] martin@amiga > uname -a NetBSD amiga.aprisoft.de 10.99.14 NetBSD 10.99.14 (GENERIC) #6: Sun Jun 8 08:11:46 CEST 2025 [email protected]:/work/src/sys/arch/amiga/compile/GENERIC amiga [~/aout_test] martin@amiga > file /bin/ls /bin/ls: ELF 32-bit MSB pie executable, Motorola m68k, 68020, version 1 (SYSV), dynamically linked, interpreter /libexec/ld.elf_so, for NetBSD 10.99.14, not stripped [~/aout_test] martin@amiga > ftp http://archive.netbsd.org/pub/NetBSD-archive/Ne tBSD-1.0/amiga/binary/base10/base10.aa Trying [2a04:4e42:8e::262]:80 ... ftp: Can't connect to `2a04:4e42:8e::262:80': No route to host Trying 146.75.117.6:80 ... Requesting http://archive.netbsd.org/pub/NetBSD-archive/NetBSD-1.0/amiga/binary/base10/base10.aa [..] [~/aout_test] martin@amiga > ftp http://archive.netbsd.org/pub/NetBSD-archive/Ne tBSD-1.0/amiga/binary/base10/base10.ag[Kh Trying [2a04:4e42:8e::262]:80 ... ftp: Can't connect to `2a04:4e42:8e::262:80': No route to host Trying 146.75.117.6:80 ... Requesting http://archive.netbsd.org/pub/NetBSD-archive/NetBSD-1.0/amiga/binary/base10/base10.ah [..] 142449 bytes retrieved in 00:00 (818.21 KiB/s) [~/aout_test] martin@amiga > su Password: [/data/home/martin/aout_test] amiga # cat base10.a* | tar xzpzf - [/data/home/martin/aout_test] amiga # file bin/ls bin/ls: a.out NetBSD/m68k demand paged executable @0x2020+T=114688+D=8192+B=7992 [/data/home/martin/aout_test] amiga # chroot . /bin/sh # pwd / # ls -l total 6436 drwxr-xr-x 2 0 0 512 Oct 21 1994 altroot -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.aa -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.ab -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.ac -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.ad -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.ae -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.af -rw-r--r-- 1 205 100 901120 Oct 28 1994 base10.ag -rw-r--r-- 1 205 100 142449 Oct 28 1994 base10.ah drwxr-xr-x 2 0 0 512 Oct 21 1994 bin drwxr-xr-x 3 0 0 512 Oct 21 1994 dev drwxr-xr-x 8 0 0 512 Oct 21 1994 etc drwxr-xr-x 2 0 0 512 Oct 21 1994 home drwxr-xr-x 2 0 0 512 Oct 21 1994 mnt drwxr-xr-x 2 0 0 512 Oct 21 1994 root drwxr-xr-x 2 0 0 1024 Oct 21 1994 sbin drwxr-xr-x 2 0 0 512 Oct 21 1994 stand drwxrwxrwt 2 0 0 512 Oct 21 1994 tmp drwxr-xr-x 14 0 0 512 Oct 21 1994 usr drwxr-xr-x 18 0 0 512 Oct 21 1994 var # uname -a NetBSD amiga.aprisoft.de 10.99.14 NetBSD 10.99.14 (GENERIC) #6: Sun Jun 8 08:11:46 CEST 2025 [email protected]:/work/src/sys/arch/amiga/compile/GENERIC amiga -->8-- So the 1.0 original release a.out binaries still work and a -current kernel provides the right data (with old alignment and 32bit time_t) for a stat(2) system call from 1994 using the a.out ABI. Martin

