[pkg-firebird-general] Bug#840666: firebird3.0: FTBFS on powerpc, segfaults during build

Damyan Ivanov dmn at debian.org
Thu Oct 13 19:09:42 UTC 2016


-=| John Paul Adrian Glaubitz, 13.10.2016 18:35:31 +0200 |=-
> Source: firebird3.0
> Version: 3.0.1.32609.ds4-6
> Severity: serious

Shouldn't this be important instead? According to 
https://release.debian.org/stretch/arch_qualify.html powerpc is not 
a release candidate.

Of course, I am eager to find solution to the crash regardless, just 
arguing about it affecting the potential migration of firebird3.0 to 
testing.

> Tags: upstream
> Justification: fails to build from source
> User: debian-powerpc at lists.debian.org
> Usertags: powerpc
> 
> firebird3.0 currently fails to build from source since the gpre
> command segfaults during build:
> 
> sh -x -c "lockfile -1 /«PKGBUILDDIR»/gen/Release/firebird/bin/build-db.lock && /«PKGBUILDDIR»/gen/Release/firebird/bin/gpre_current -m -z -n /«PKGBUILDDIR»/src/yvalve/blob.epp /«PKGBUILDDIR»/temp/Release/yvalve/blob.cpp; res=\$?; rm -f /«PKGBUILDDIR»/gen/Release/firebird/bin/build-db.lock; exit \$res"
> + lockfile -1 /«PKGBUILDDIR»/gen/Release/firebird/bin/build-db.lock
> + /«PKGBUILDDIR»/gen/Release/firebird/bin/gpre_current -m -z -n /«PKGBUILDDIR»/src/yvalve/blob.epp /«PKGBUILDDIR»/temp/Release/yvalve/blob.cpp
> gpre version LI-V3.0.1.32609 Firebird 3.0
> Segmentation fault
> + res=139
> + rm -f /«PKGBUILDDIR»/gen/Release/firebird/bin/build-db.lock
> + exit 139

Hmm. I have seen this on amd64 when gcc switched to version 6. Getting 
it built required adding -std=gnu++98 -fno-lifetime-dse 
-fno-delete-null-pointer-checks -fno-strict-aliasing to the compiler 
flags. Probably unrelated.

> I have done some debugging and from the backtrace it's obvious that
> the crash occurs in glibc:
> 
> (sid_powerpc-dchroot)glaubitz at partch:~/firebird3.0-3.0.1.32609.ds4$ gdb /home/glaubitz/firebird3.0-3.0.1.32609.ds4/gen/Release/firebird/bin/gpre_boot
> GNU gdb (Debian 7.11.1-2) 7.11.1
> Copyright (C) 2016 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".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from /home/glaubitz/firebird3.0-3.0.1.32609.ds4/gen/Release/firebird/bin/gpre_boot...done.
> (gdb) run
> Starting program: /home/glaubitz/firebird3.0-3.0.1.32609.ds4/gen/Release/firebird/bin/gpre_boot
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library 
> "/lib/powerpc-linux-gnu/libthread_db.so.1".
> gpre:  no source file named.
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x0fa79960 in _IO_wsetb () from /lib/powerpc-linux-gnu/libc.so.6
> (gdb) bt
> #0  0x0fa79960 in _IO_wsetb () from /lib/powerpc-linux-gnu/libc.so.6
> #1  0x0fa88dac in ?? () from /lib/powerpc-linux-gnu/libc.so.6
> #2  0x0fa3cd58 in ?? () from /lib/powerpc-linux-gnu/libc.so.6
> #3  0x0fa3ce30 in exit () from /lib/powerpc-linux-gnu/libc.so.6
> #4  0x10027f28 in CPR_exit (stat=263831632) at ./src/gpre/gpre.cpp:978
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
> (gdb)
> 
> This looks similar to the FTBFS of lua5.3 on powerpc [1] which is
> triggered by the use of a version script for the linker and, in
> fact, firebird3.0 is using such scripts. Now, this actually reminded
> me of another similar problem we had on sparc back then [2] which
> is the missing _IO_stdin_used symbol in the version script. lua5.2
> was affected by that problem as well and Aurelien Jarno fixed that
> by adding that symbol to the version script [3].

This is interesting. I was trying to debug a similar issue today on 
the mips64el porterbox. One of the command-line utilities of firebird 
produces garbage upon exit breaking a database verification at the end 
of the build process. (Build log: 
https://buildd.debian.org/status/fetch.php?pkg=firebird3.0&arch=mips64el&ver=3.0.1.32609.ds4-6&stamp=1476281685)
There is random garbage emitted by the firebird source preprocessor 
(gpre) which is visible earlier in the build log.
Alpha is also affected.

> I tried the fix from [3] in firebird3.0, but unfortunately it
> doesn't help. Currently, I'm out of ideas but it would be great
> to see this fixed as this also affects m68k for which I have
> added platform support to firebird upstream [4,5].

Where did you add that _IO_stdin_used entry? There are several *.vers 
files in the source. I'll try with all of them and also 
_IO_std{err,out}_used.

(15 minutes later) Oh, it helps! The invocations of gpre no longer 
dump sources. Let's see how far this goes.

-- Damyan

> > [1] https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1570055
> > [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261
> > [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816059
> > [4] https://github.com/FirebirdSQL/firebird/pull/51
> > [5] https://github.com/FirebirdSQL/firebird/pull/52
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-firebird-general/attachments/20161013/00a086a8/attachment-0001.sig>


More information about the pkg-firebird-general mailing list