diff options
Diffstat (limited to 'results/classifier/118/none/1054831')
| -rw-r--r-- | results/classifier/118/none/1054831 | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/results/classifier/118/none/1054831 b/results/classifier/118/none/1054831 new file mode 100644 index 000000000..4fc8fb26d --- /dev/null +++ b/results/classifier/118/none/1054831 @@ -0,0 +1,84 @@ +architecture: 0.235 +mistranslation: 0.198 +PID: 0.179 +x86: 0.176 +network: 0.173 +device: 0.169 +user-level: 0.133 +permissions: 0.129 +semantic: 0.116 +vnc: 0.106 +performance: 0.104 +socket: 0.104 +ppc: 0.102 +debug: 0.093 +register: 0.088 +VMM: 0.088 +TCG: 0.082 +kernel: 0.075 +files: 0.074 +peripherals: 0.072 +risc-v: 0.069 +hypervisor: 0.069 +arm: 0.063 +graphic: 0.058 +KVM: 0.054 +virtual: 0.048 +boot: 0.046 +assembly: 0.043 +i386: 0.041 + +qemu-user-static for sparc32plus : bash: fork: Invalid argument + +On Debian x86-64 host system I setup a sparc chroot using: + +host $ mkdir sparc +host $ sudo debootstrap --arch=sparc --foreign wheezy sparc http://ftp.au.debian.org/debian +host $ sudo cp ~/Git/qemu/sparc32plus-linux-user/qemu-sparc32plus sparc/usr/bin/qemu-sparc32plus-static +host $ LANG=C sudo chroot sparc/ /usr/bin/qemu-sparc32plus-static /bin/bash + +When I then run the second stage of debootstrap I get: + +target $ /debootstrap/debootstrap --second-stage +bash: fork: Invalid argument + +The above procedures works perfectly for armhf. + +This is with current git HEAD (commit 93b6599734f81328ee3d608f57667742cafeea72). + +This is due to QEMU sparc32plus-linux-user not being compiled with NPTL support. + +Dillon Amburgey wrote: + +> This is due to QEMU sparc32plus-linux-user not being compiled with NPTL +> support. + +I just check, and NPTL is enabled. I also did this on the binary I +compiled: + + $ strings /usr/bin/qemu-sparc32plus-static | grep nptl + ../nptl/sysdeps/pthread/createthread.c + ../nptl/pthread_mutex_lock.c + nptl-init.c + ../nptl/sysdeps/unix/sysv/linux/x86_64/../fork.c + +which suggests that it has been compiled with NPTL. + + +What I mean is that QEMU isn't compiled with guest support for NPTL on every architecture. + +If you look in the configure script around line 3900, you'll see some architectures have target_nptl="yes" while others (including sparc) do not. + +Unfortunately it looks like the code isn't complete for sparc support, so it isn't a simple matter of enabling it in the configure script. + +The reason you get "bash: fork: Invalid argument" is because glibc makes a call to clone() with NPTL arguments that aren't supported. + +This bug should be fixed by a combination of: + * the enable-NPTL-everywhere patchset: http://lists.nongnu.org/archive/html/qemu-devel/2013-07/msg02614.html + * a fix for pipe() on sparc: http://lists.nongnu.org/archive/html/qemu-devel/2013-07/msg01072.html +which I hope will make it into QEMU 1.6. + + +This was fixed years ago... + + |