On Fri, Mar 30, 2018 at 12:58:02PM +0200, Ingo Molnar wrote: > * John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> wrote: > > > On 03/27/2018 12:40 PM, Linus Torvalds wrote: > > > On Mon, Mar 26, 2018 at 4:37 PM, John Paul Adrian Glaubitz > > > <glaubitz@xxxxxxxxxxxxxxxxxxx> wrote: > > >> > > >> What about a tarball with a minimal Debian x32 chroot? Then you can > > >> install interesting packages you would like to test yourself. > Here's the direct download link: > $ wget https://people.debian.org/~glaubitz/chroots/debian-x32-unstable.tar.gz > Seems to work fine here (on a distro kernel) even if I extract all the files as a > non-root user and do: > > ~/s/debian-x32-unstable> fakechroot /usr/sbin/chroot . /usr/bin/dpkg -l | tail -2 > > ERROR: ld.so: object 'libfakechroot.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. > ii util-linux:x32 2.31.1-0.5 x32 miscellaneous system utilities > ii zlib1g:x32 1:1.2.8.dfsg-5 x32 compression library - runtime > So that 'dpkg' instance appears to be running inside the chroot environment and is > listing x32 installed packages. > Although I did get this warning: > ERROR: ld.so: object 'libfakechroot.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. > Even with that warning, is still still a sufficiently complex test of x32 syscall > code paths? Instead of mucking with fakechroot which would require installing its :x32 part inside the guest, or running the test as root, what about using any random static binary? For example, a shell like sash or bash-static would have a decentish syscall coverage even by itself. I've extracted sash from http://ftp.ports.debian.org/debian-ports//pool-x32/main/s/sash/sash_3.8-4_x32.deb and placed at https://angband.pl/tmp/sash.x32 $ sha256sum sash.x32 de24097c859b313fa422af742b648c9d731de6b33b98cb995658d1da16398456 sash.x32 Obviously, you can compile a static binary that uses whatever syscalls you want. Without a native chroot, you can "gcc -mx32" although you'd need some kind of libc unless your program is stand-alone. It might be worth mentioning my "arch-test: https://github.com/kilobyte/arch-test Because of many toolchain pieces it needs, you want a prebuilt copy: https://github.com/kilobyte/arch-test/releases/download/v0.10/arch-test_prebuilt_0.10.tar.xz https://github.com/kilobyte/arch-test/releases/download/v0.10/arch-test_prebuilt_0.10.tar.xz.asc -- while it has _extremely_ small coverage of syscalls (just write() and _exit(), enough to check endianness and pointer width), concentrating on instruction set inadequacies (broken SWP on arm, POWER7 vs POWER8, powerpc vs powerpcspe, etc), it provides minimal test binaries for a wide range of architectures. Meow! -- ⢀⣴⠾⠻⢶⣦⠀ ⣾⠁⢰⠒⠀⣿⡁ I was born a dumb, ugly and work-loving kid, then I got swapped on ⢿⡄⠘⠷⠚⠋⠀ the maternity ward. ⠈⠳⣄⠀⠀⠀⠀
Attachment:
signature.asc
Description: PGP signature