# Judgement call given that it builds on Debian buildds and the # porterbox and that the resulting binaries work. Control: severity -1 important
Hi, On Thu, Oct 10, 2013 at 10:03:57PM -0700, Ryan Finnie wrote: > On the powerpc arch, runit fails to build, but only when booted from a > 32-bit kernel (Mac Mini G4). The build freezes at the test stage: > > + cd compile > + exec make check > make[1]: Entering directory `/tmp/runit/runit-2.1.1/runit-2.1.1/compile' > ./check-local chpst runit runit-init runsv runsvchdir runsvdir sv svlogd > utmpset > Checking chpst... > Checking runit... > Checking runit-init... > Checking runsv... > > Reproducing what the check does reveals a SIGILL exit: > > $ gdb /tmp/runit/runit-2.1.1/runit-2.1.1/compile/runsv > GNU gdb (GDB) 7.4.1-debian > Copyright (C) 2012 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "powerpc-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from /tmp/runit/runit-2.1.1/runit-2.1.1/compile/runsv...(no > debugging symbols found)...done. > (gdb) run /tmp/runit/runit-2.1.1/runit-2.1.1/compile/check-tmp > Starting program: /tmp/runit/runit-2.1.1/runit-2.1.1/compile/runsv > /tmp/runit/runit-2.1.1/runit-2.1.1/compile/check-tmp > > Program received signal SIGILL, Illegal instruction. > 0x10002bc8 in taia_approx () > (gdb) starting > > (gdb) bt > #0 0x10002bc8 in taia_approx () > #1 0x10002a80 in iopause () > #2 0x10000894 in main () > (gdb) > > > I ran the same build on a similar system with success: powerpc arch, > 32-bit userland (Debian does not produce a 64-bit userland), but G5 > system so it was a 64-bit kernel. The binaries produced on the G5 > system work correctly on the G4 system. > > Going back to the last Debian buildd of runit on powerpc shows it was > built on a 64-bit kernel, most likely a G5, which explains why it did > not originally FTBFS: > > https://buildd.debian.org/status/fetch.php?pkg=runit&arch=powerpc&ver=2.1.1-6.2&stamp=1295216762 > Kernel: Linux 2.6.26-2-powerpc64 powerpc (ppc64) so this is tricky. Debian does not have any G4s left. It sounds like a code generation issue. Could you try to use an older gcc to compile this? And I guess it'd be helpful to get a disassembled version of the function, so please do "disas taia_approx" in gdb and include its output. Compilation will work on Debian infrastructure and the resulting binaries will work everywhere according to your analysis. If it compiles with an older gcc we have a sort of a workaround for people wanting to change the code. Kind regards Philipp Kern
signature.asc
Description: Digital signature