diff options
Diffstat (limited to 'results/scraper/launchpad-without-comments/1701798')
| -rw-r--r-- | results/scraper/launchpad-without-comments/1701798 | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1701798 b/results/scraper/launchpad-without-comments/1701798 new file mode 100644 index 00000000..3be3b821 --- /dev/null +++ b/results/scraper/launchpad-without-comments/1701798 @@ -0,0 +1,160 @@ +dynamically linked binaries crash for big-endian targets + +On the targets + hppa + m68k + mips + mips64 + powerpc + powerpc64 + s390x + sparc64 +dynamically linked binaries crash, but statically linked binaries work. +On the targets + aarch64 + alpha + armhf + powerpc64le + sh4 +both dynamically linked and statically linked binaries work. + +How to reproduce: + +1) On Ubuntu 16.04, install the packages +g++-5-aarch64-linux-gnu +g++-5-alpha-linux-gnu +g++-5-arm-linux-gnueabihf +g++-5-hppa-linux-gnu +g++-5-m68k-linux-gnu +g++-5-mips-linux-gnu +g++-5-mips64-linux-gnuabi64 +g++-5-powerpc-linux-gnu +g++-5-powerpc64-linux-gnu +g++-5-powerpc64le-linux-gnu +g++-5-s390x-linux-gnu +g++-5-sh4-linux-gnu +g++-5-sparc64-linux-gnu + +2) Install qemu 2.9.0 from source (for m68k, use the 2.7.0-m68k +code from https://github.com/vivier/qemu-m68k.git): +$ ../configure --prefix=/home/bruno/inst-qemu/2.9.0 --target-list=aarch64-softmmu,alpha-softmmu,arm-softmmu,i386-softmmu,m68k-softmmu,mips-softmmu,mipsel-softmmu,mips64-softmmu,mips64el-softmmu,ppc-softmmu,ppc64-softmmu,s390x-softmmu,sh4-softmmu,sparc-softmmu,sparc64-softmmu,x86_64-softmmu,aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,m68k-linux-user,mips-linux-user,mipsel-linux-user,mips64-linux-user,mips64el-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,s390x-linux-user,sh4-linux-user,sparc-linux-user,sparc64-linux-user --disable-strip --disable-werror --enable-gtk --enable-vnc +$ make +$ make install + +3) Cross-compile the programs: + +$ aarch64-linux-gnu-gcc-5 -O hello.c -o hello.aarch64 +$ alpha-linux-gnu-gcc-5 -O hello.c -o hello.alpha +$ arm-linux-gnueabihf-gcc-5 -O hello.c -o hello.armhf +$ hppa-linux-gnu-gcc-5 -O hello.c -o hello.hppa +$ m68k-linux-gnu-gcc-5 -O hello.c -o hello.m68k +$ mips-linux-gnu-gcc-5 -O hello.c -o hello.mips +$ mips64-linux-gnuabi64-gcc-5 -O hello.c -o hello.mips64 +$ powerpc-linux-gnu-gcc-5 -O hello.c -o hello.powerpc +$ powerpc64-linux-gnu-gcc-5 -O hello.c -o hello.powerpc64 +$ powerpc64le-linux-gnu-gcc-5 -O hello.c -o hello.powerpc64le +$ s390x-linux-gnu-gcc-5 -O hello.c -o hello.s390x +$ sh4-linux-gnu-gcc-5 -O hello.c -o hello.sh4 +$ sparc64-linux-gnu-gcc-5 -O hello.c -o hello.sparc64 + +4) Run the programs: + +* aarch64 works: +$ QEMU_LD_PREFIX=/usr/aarch64-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-aarch64 hello.aarch64 +Hello world + +* alpha works: +$ QEMU_LD_PREFIX=/usr/alpha-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-alpha hello.alpha +Hello world + +* armhf works: +$ QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf ~/inst-qemu/2.9.0/bin/qemu-arm hello.armhf +Hello world + +* powerpc64le works: +$ QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-ppc64le hello.powerpc64le +Hello world + +* sh4 works: +$ QEMU_LD_PREFIX=/usr/sh4-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-sh4 hello.sh4 +Hello world + +* ===== sparc64 does not work: +$ QEMU_LD_PREFIX=/usr/sparc64-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-sparc64 hello.sparc64 +Segmentation fault (core dumped) + +When I copy the file to a machine with `uname -srm` = "Linux 4.5.0-2-sparc64 sparc64", +it works: +$ ./hello.sparc64 +Hello world + +When I copy the file and its execution environment /usr/sparc64-linux-gnu to the +same machine and run the binary in a chroot environment: +# /bin/hello.sparc64 +Hello world + +* ===== mips does not work: +$ QEMU_LD_PREFIX=/usr/mips-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-mips hello.mips +qemu: uncaught target signal 11 (Segmentation fault) - core dumped + +When I copy the file to a machine with `uname -srm` = "Linux 3.16.0-4-4kc-malta mips", +it works: +$ ./hello.mips +Hello world + +When I copy the file and its execution environment /usr/mips-linux-gnu to the +same machine and run the binary in a chroot environment: +# /bin/hello.mips +Hello world + +* ===== mips64 does not work: +$ QEMU_LD_PREFIX=/usr/mips64-linux-gnuabi64 ~/inst-qemu/2.9.0/bin/qemu-mips64 hello.mips64 +qemu: uncaught target signal 11 (Segmentation fault) - core dumped + +When I copy the file to a machine with `uname -srm` = "Linux 3.16.0-4-5kc-malta mips64", +it works: +$ ./hello.mips64 +Hello world + +* ===== powerpc does not work: +$ QEMU_LD_PREFIX=/usr/powerpc-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-ppc hello.powerpc +qemu: uncaught target signal 11 (Segmentation fault) - core dumped + +When I copy the file to a machine with `uname -srm` = "Linux 3.17.2-200.fc20.ppc64p7 ppc64", +it works: +$ ./hello.powerpc +Hello world + +* ===== powerpc64 does not work: +$ QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-ppc64 hello.powerpc64 +qemu: uncaught target signal 11 (Segmentation fault) - core dumped + +When I copy the file to a machine with `uname -srm` = "Linux 3.17.2-200.fc20.ppc64p7 ppc64", +it works: +$ ./hello.powerpc64 +Hello world + +* ===== s390x does not work: +$ QEMU_LD_PREFIX=/usr/s390x-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-s390x hello.s390x +<hangs> +$ QEMU_LD_PREFIX=/usr/s390x-linux-gnu ~/inst-qemu/2.8.1/bin/qemu-s390x hello.s390x +qemu-s390x: /media/develdata/devel/build/qemu-2.8.1/translate-all.c:175: tb_lock: Assertion `!have_tb_lock' failed. +Segmentation fault (core dumped) + +When I copy the file to a machine with `uname -srm` = "Linux 3.16.0-4-s390x s390x", +it works: +$ ./hello.s390x +Hello world + +* ===== hppa does not work: +$ QEMU_LD_PREFIX=/usr/hppa-linux-gnu ~/inst-qemu/2.9.0/bin/qemu-hppa hello.hppa +Segmentation fault (core dumped) + +* ===== m68k does not work: +$ QEMU_LD_PREFIX=/usr/m68k-linux-gnu QEMU_CPU=m68020 ~/inst-qemu/2.9.0/bin/qemu-m68k hello.m68k +qemu: uncaught target signal 4 (Illegal instruction) - core dumped +$ QEMU_LD_PREFIX=/usr/m68k-linux-gnu QEMU_CPU=m68020 ~/inst-qemu/2.7.0-m68k/bin/qemu-m68k hello.m68k +qemu: uncaught target signal 11 (Segmentation fault) - core dumped + + +The set of targets where it does not work is exactly the big-endian targets. \ No newline at end of file |