# 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

Attachment: signature.asc
Description: Digital signature

Reply via email to