Hi! Danny Milosavljevic <dan...@scratchpost.org> skribis:
> On Tue, 23 Jan 2018 15:49:26 +0100 > ludovic.cour...@inria.fr (Ludovic Courtès) wrote: > >> > Currently proot only build successfully on x86_64 and i686, so that is >> > something we would need to fix first. > > Are you sure that is not just a limitation of the qemu transparent emulation? Oh, I hadn’t thought about that. > I examined the test failures in proot-static and it's clear that qemu will > have > some trouble finding out what one wants to happen: > >>#include <unistd.h> /* execve(2), */ >>#include <stdlib.h> /* exit(3), */ >>#include <string.h> /* strcmp(3), */ >> >>int main(int argc, char *argv[]) >>{ >> if (argc == 0) >> exit(EXIT_SUCCESS); >> >> execve("/proc/self/exe", NULL, NULL); >> exit(EXIT_FAILURE); >>} > > Now, qemu transparent emulation still picks up, but then the missing > argv[0] will be a problem. > > And indeed, > > $ guix environment -s armhf-linux proot-static > [...] > [env]$ ./test-25069c12 > qemu: no user program specified Are you saying that /proc/self/exe is incorrect when using binfmt_misc? D’oh! --8<---------------cut here---------------start------------->8--- $ uname -m x86_64 $ guix environment --ad-hoc coreutils -s armhf-linux [env]$ uname -m armv7l [env]$ sleep 100 & [1] 2410 [env]$ ls -l /proc/2410/exe lrwxrwxrwx 1 ludo users 0 Mar 25 09:55 /proc/2410/exe -> /gnu/store/6ar48khay4zd435cvkv4bgf1jih7jimq-qemu-3.1.0/bin/qemu-arm --8<---------------cut here---------------end--------------->8--- So that could well be a problem (potentially in other packages as well; I didn’t expect /proc/self/exe to be “wrong”.) We’ll have to check what happens on berlin though, because there we build on the bare metal. Thanks, Ludo’.