www.digitalmars.com         C & C++   DMDScript  

D.gnu - gdc in raspbian stretch.

reply "Peter Green" <plugwash raspbian.org> writes:
I maintain raspbian, a project to rebuild Debian for the 
raspberry pi (and in principle other armv6 devices but the Pi 
seems to be the only armv6 device anyone cares about). We try to 
support as much of Debian as possible but as effectively a single 
person project do not have the resources to dig deeply into 
problems with minor languages.

In Raspbian jessie and stretch we have successfully built gdc-4.9 
from the gcc-4.9 source package. However the same cannot be said 
for gcc-5 which has recented entered stretch. A log of our most 
recent attempt can be found at 
http://buildd.raspbian.org/status/fetch.php?pkg=gcc-5&arch=armhf&ver=5.1.
-9&stamp=1434096865 . An extract of potentially interesting lines from said log
is bwlo.

tar -x -C /«PKGBUILDDIR»/src --strip-components=1 -f 
gdc-20150414.tar.xz
<---snip--->
/«PKGBUILDDIR»/build/./prev-gcc/xg++ 
-B/«PKGBUILDDIR»/build/./prev-gcc/ 
-B/usr/arm-linux-gnueabihf/bin/ -nostdinc++ 
-B/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/src/.libs
-B/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/libsupc++/.libs 
-I/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/include
arm-linux-gnueabihf 
-I/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/include 
-I/«PKGBUILDDIR»/src/libstdc++-v3/libsupc++
-L/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/src/.libs
-L/«PKGBUILDDIR»/build/prev-arm-linux-gnueabihf/libstdc++-v3/libsupc++/.libs
-g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables
-DHAVE_CONFIG_H -Wno-deprecated -Wstrict-aliasing -Wuninitialized -I. -Id
-I../../src/gcc -I../../src/gcc/d -I../../src/gcc/../include
-I../../src/gcc/../libcpp/include  -I../../src/gcc/../libdecnumber
-I../../src/gcc/../libdecnumber/dpd -I../libdecnumber
-I../../src/gcc/../libbacktrace   -Id -I../../src/gcc/d/dfrontend
-I../../src/gcc/d  -o d/expression.dmd.o -c
../../src/gcc/d/dfrontend/expression.c
<----snip------->
cc1d: ../../src/gcc/d/dfrontend/expression.c:2619: 
IntegerExp::IntegerExp(Loc, dinteger_t, Type*): Assertion `type' 
failed.
cc1d: internal compiler error: Aborted
libtool: compile:  /«PKGBUILDDIR»/build/./gcc/gccgo 
-B/«PKGBUILDDIR»/build/./gcc/ -B/usr/arm-linux-gnueabihf/bin/ 
-B/usr/arm-linux-gnueabihf/lib/ -isystem 
/usr/arm-linux-gnueabihf/include -isystem 
/usr/arm-linux-gnueabihf/sys-include -isystem 
/«PKGBUILDDIR»/build/sys-include -O2 -g -ffp-contract=off -I . -c 
-fgo-pkgpath=math ../../../src/libgo/go/math/abs.go 
../../../src/libgo/go/math/acosh.go 
../../../src/libgo/go/math/asin.go 
../../../src/libgo/go/math/asinh.go 
../../../src/libgo/go/math/atan.go 
../../../src/libgo/go/math/atanh.go 
../../../src/libgo/go/math/atan2.go 
../../../src/libgo/go/math/bits.go 
../../../src/libgo/go/math/cbrt.go 
../../../src/libgo/go/math/const.go 
../../../src/libgo/go/math/copysign.go 
../../../src/libgo/go/math/dim.go 
../../../src/libgo/go/math/erf.go 
../../../src/libgo/go/math/exp.go 
../../../src/libgo/go/math/expm1.go 
../../../src/libgo/go/math/floor.go 
../../../src/libgo/go/math/frexp.go 
../../../src/libgo/go/math/gamma.go 
../../../src/libgo/go/math/hypot.go 
../../../src/libgo/go/math/j0.go ../../../src/libgo/go/math/j1.go 
../../../src/libgo/go/math/jn.go 
../../../src/libgo/go/math/ldexp.go 
../../../src/libgo/go/math/lgamma.go 
../../../src/libgo/go/math/log.go 
../../../src/libgo/go/math/log1p.go 
../../../src/libgo/go/math/log10.go 
../../../src/libgo/go/math/logb.go 
../../../src/libgo/go/math/mod.go 
../../../src/libgo/go/math/modf.go 
../../../src/libgo/go/math/nextafter.go 
../../../src/libgo/go/math/pow.go 
../../../src/libgo/go/math/pow10.go 
../../../src/libgo/go/math/remainder.go 
../../../src/libgo/go/math/signbit.go 
../../../src/libgo/go/math/sin.go 
../../../src/libgo/go/math/sincos.go 
../../../src/libgo/go/math/sinh.go 
../../../src/libgo/go/math/sqrt.go 
../../../src/libgo/go/math/tan.go 
../../../src/libgo/go/math/tanh.go 
../../../src/libgo/go/math/unsafe.go -o math.o >/dev/null 2>&1
if [ x"" != x ]; then \
   /«PKGBUILDDIR»/build/./gcc/xgcc -B/«PKGBUILDDIR»/build/./gcc/ 
-B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ 
-isystem /usr/arm-linux-gnueabihf/include -isystem 
/usr/arm-linux-gnueabihf/sys-include -isystem 
/«PKGBUILDDIR»/build/sys-include    -c -DHAVE_CONFIG_H -g -O2  
-I. -I../../../src/libiberty/../include  -W -Wall -Wwrite-strings 
-Wc++-compat -Wstrict-prototypes -pedantic  -fPIC  
../../../src/libiberty/simple-object-elf.c -o 
noasan/simple-object-elf.o; \
else true; fi
/«PKGBUILDDIR»/build/./gcc/xgcc -B/«PKGBUILDDIR»/build/./gcc/ 
-B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ 
-isystem /usr/arm-linux-gnueabihf/include -isystem 
/usr/arm-linux-gnueabihf/sys-include -isystem 
/«PKGBUILDDIR»/build/sys-include    -c -DHAVE_CONFIG_H -g -O2  
-I. -I../../../src/libiberty/../include  -W -Wall -Wwrite-strings 
-Wc++-compat -Wstrict-prototypes -pedantic  
../../../src/libiberty/simple-object-elf.c -o simple-object-elf.o
libtool: compile:  /«PKGBUILDDIR»/build/./gcc/xgcc -shared-libgcc 
-B/«PKGBUILDDIR»/build/./gcc -nostdinc++ 
-L/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libstdc++-v3/src 
-L/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libstdc++-v3/src/.libs 
-L/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libstdc++-v3/libsupc++/.libs
-B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem
/usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include
-isystem /«PKGBUILDDIR»/build/sys-include -D_GNU_SOURCE -D_DEBUG
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-DHAVE_RPC_XDR_H=1 -DHAVE_TIRPC_RPC_XDR_H=0 -I.
-I../../../../src/libsanitizer/sanitizer_common -I.. -I
../../../../src/libsanitizer/include -isystem
../../../../src/libsanitizer/include/system -Wall -W -Wno-unused-parameter
-Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions
-fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden
-Wno-variadic-macros -I../../libstdc++-v3/include
-I../../libstdc++-v3/include/arm-linux-gnueabihf
-I../../../../src/libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11
-DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I
../../../../src/libsanitizer/../libbacktrace -I ../libbacktrace -I
../../../../src/libsanitizer/../include -include
../../../../src/libsanitizer/libbacktrace/backtrace-rename.h -g -O2
-D_GNU_SOURCE -MT sanitizer_deadlock_detector1.lo -MD -MP -MF
.deps/sanitizer_deadlock_detector1.Tpo -c
../../../../src/libsanitizer/sanitizer_common/sanitizer_deadlock_detector1.cc
-o sanitizer_deadlock_detector1.o >/dev/null 2>&1
0x6034ef crash_signal
	../../src/gcc/toplev.c:383
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.
The bug is not reproducible, so it is likely a hardware or OS 
problem.
Makefile:583: recipe for target 'core/thread.o' failed
make[6]: *** [core/thread.o] Error 1
make[6]: Leaving directory 
'/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libphobos/libdruntime'
Makefile:395: recipe for target 'all-recursive' failed
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory 
'/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libphobos'
Makefile:314: recipe for target 'all' failed
make[4]: *** [all] Error 2
make[4]: Leaving directory 
'/«PKGBUILDDIR»/build/arm-linux-gnueabihf/libphobos'
Makefile:18154: recipe for target 'all-target-libphobos' failed
make[3]: *** [all-target-libphobos] Error 2
make[3]: *** Waiting for unfinished jobs....

Despite the assertion in the error message that "The bug is not 
reproducible, so it is likely a hardware or OS problem." I have 
got substatailly the same error in a total of 5 build attempts 
across four versions of the Debian gcc-5 source.

Anyone seen anything like this before? anyone here care about gdc 
in raspbian and want to assist in finding a root cause and a 
patch for this?

To fix the immediate problem I disabled gdc in the gcc-5 source 
package and modified gcc-defaults to revert the default gdc 
version to 4.9 but I do not know how long it will be feasible to 
maintain that workaround for and so if no fix is forthcoming our 
only remaining option may be to remove gdc and it's reverse 
dependencies from Raspbian stretch.
Jun 16 2015
next sibling parent "Iain Buclaw via D.gnu" <d.gnu puremagic.com> writes:
On 17 Jun 2015 02:50, "Peter Green via D.gnu" <d.gnu puremagic.com> wrote:
 I maintain raspbian, a project to rebuild Debian for the raspberry pi
(and in principle other armv6 devices but the Pi seems to be the only armv6 device anyone cares about). We try to support as much of Debian as possible but as effectively a single person project do not have the resources to dig deeply into problems with minor languages.
 In Raspbian jessie and stretch we have successfully built gdc-4.9 from
the gcc-4.9 source package. However the same cannot be said for gcc-5 which has recented entered stretch. A log of our most recent attempt can be found at http://buildd.raspbian.org/status/fetch.php?pkg=3Dgcc-5&arch=3Darmhf&ver=3D= 5.1.1-9&stamp=3D1434096865 . An extract of potentially interesting lines from said log is bwlo.
 tar -x -C /=C2=ABPKGBUILDDIR=C2=BB/src --strip-components=3D1 -f gdc-2015=
0414.tar.xz
 <---snip--->
 /=C2=ABPKGBUILDDIR=C2=BB/build/./prev-gcc/xg++ -B/=C2=ABPKGBUILDDIR=C2=BB=
/build/./prev-gcc/ -B/usr/arm-linux-gnueabihf/bin/ -nostdinc++ -B/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/src/= .libs -B/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/libs= upc++/.libs -I/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/incl= ude/arm-linux-gnueabihf -I/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/incl= ude -I/=C2=ABPKGBUILDDIR=C2=BB/src/libstdc++-v3/libsupc++ -L/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/src/= .libs -L/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/libs= upc++/.libs -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -DHAVE_CONFIG_H -Wno-deprecated -Wstrict-aliasing -Wuninitialized -I. -Id -I../../src/gcc -I../../src/gcc/d -I../../src/gcc/../include -I../../src/gcc/../libcpp/include -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/dpd -I../libdecnumber -I../../src/gcc/../libbacktrace -Id -I../../src/gcc/d/dfrontend -I../../src/gcc/d -o d/expression.dmd.o -c ../../src/gcc/d/dfrontend/expression.c
 <----snip------->
 cc1d: ../../src/gcc/d/dfrontend/expression.c:2619:
IntegerExp::IntegerExp(Loc, dinteger_t, Type*): Assertion `type' failed.
 cc1d: internal compiler error: Aborted
 libtool: compile:  /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/gccgo
-B/=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/ -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem /usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include -isystem /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -O2 -g -ffp-contract=3Doff -I . = -c -fgo-pkgpath=3Dmath ../../../src/libgo/go/math/abs.go ../../../src/libgo/go/math/acosh.go ../../../src/libgo/go/math/asin.go ../../../src/libgo/go/math/asinh.go ../../../src/libgo/go/math/atan.go ../../../src/libgo/go/math/atanh.go ../../../src/libgo/go/math/atan2.go ../../../src/libgo/go/math/bits.go ../../../src/libgo/go/math/cbrt.go ../../../src/libgo/go/math/const.go ../../../src/libgo/go/math/copysign.go ../../../src/libgo/go/math/dim.go ../../../src/libgo/go/math/erf.go ../../../src/libgo/go/math/exp.go ../../../src/libgo/go/math/expm1.go ../../../src/libgo/go/math/floor.go ../../../src/libgo/go/math/frexp.go ../../../src/libgo/go/math/gamma.go ../../../src/libgo/go/math/hypot.go ../../../src/libgo/go/math/j0.go ../../../src/libgo/go/math/j1.go ../../../src/libgo/go/math/jn.go ../../../src/libgo/go/math/ldexp.go ../../../src/libgo/go/math/lgamma.go ../../../src/libgo/go/math/log.go ../../../src/libgo/go/math/log1p.go ../../../src/libgo/go/math/log10.go ../../../src/libgo/go/math/logb.go ../../../src/libgo/go/math/mod.go ../../../src/libgo/go/math/modf.go ../../../src/libgo/go/math/nextafter.go ../../../src/libgo/go/math/pow.go ../../../src/libgo/go/math/pow10.go ../../../src/libgo/go/math/remainder.go ../../../src/libgo/go/math/signbit.go ../../../src/libgo/go/math/sin.go ../../../src/libgo/go/math/sincos.go ../../../src/libgo/go/math/sinh.go ../../../src/libgo/go/math/sqrt.go ../../../src/libgo/go/math/tan.go ../../../src/libgo/go/math/tanh.go ../../../src/libgo/go/math/unsafe.go -o math.o >/dev/null 2>&1
 if [ x"" !=3D x ]; then \
   /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -B/=C2=ABPKGBUILDDIR=C2=BB/bu=
ild/./gcc/ -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem /usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include -isystem /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -c -DHAVE_CONFIG_H -g -O2 -I= . -I../../../src/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic -fPIC ../../../src/libiberty/simple-object-elf.c -o noasan/simple-object-elf.o; \
 else true; fi
 /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -B/=C2=ABPKGBUILDDIR=C2=BB/buil=
d/./gcc/ -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem /usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include -isystem /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -c -DHAVE_CONFIG_H -g -O2 -I= . -I../../../src/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ../../../src/libiberty/simple-object-elf.c -o simple-object-elf.o
 libtool: compile:  /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -shared-libg=
cc -B/=C2=ABPKGBUILDDIR=C2=BB/build/./gcc -nostdinc++ -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/src -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/src/.libs -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/libsupc++= /.libs -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem /usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include -isystem /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=3D1 -DHAVE_TIRPC_RPC_XDR_H=3D0 -I. -I../../../../src/libsanitizer/sanitizer_common -I.. -I ../../../../src/libsanitizer/include -isystem ../../../../src/libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=3Dhidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/arm-linux-gnueabihf -I../../../../src/libsanitizer/../libstdc++-v3/libsupc++ -std=3Dgnu++11 -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I ../../../../src/libsanitizer/../libba!
 cktrace -I ../libbacktrace -I ../../../../src/libsanitizer/../include
-include ../../../../src/libsanitizer/libbacktrace/backtrace-rename.h -g -O2 -D_GNU_SOURCE -MT sanitizer_deadlock_detector1.lo -MD -MP -MF .deps/sanitizer_deadlock_detector1.Tpo -c ../../../../src/libsanitizer/sanitizer_common/sanitizer_deadlock_detector1.= cc -o sanitizer_deadlock_detector1.o >/dev/null 2>&1
 0x6034ef crash_signal
         ../../src/gcc/toplev.c:383
 Please submit a full bug report,
 with preprocessed source if appropriate.
 Please include the complete backtrace with any bug report.
 See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.
 The bug is not reproducible, so it is likely a hardware or OS problem.
 Makefile:583: recipe for target 'core/thread.o' failed
 make[6]: *** [core/thread.o] Error 1
 make[6]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos/libdruntime'
 Makefile:395: recipe for target 'all-recursive' failed
 make[5]: *** [all-recursive] Error 1
 make[5]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos'
 Makefile:314: recipe for target 'all' failed
 make[4]: *** [all] Error 2
 make[4]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos'
 Makefile:18154: recipe for target 'all-target-libphobos' failed
 make[3]: *** [all-target-libphobos] Error 2
 make[3]: *** Waiting for unfinished jobs....

 Despite the assertion in the error message that "The bug is not
reproducible, so it is likely a hardware or OS problem." I have got substatailly the same error in a total of 5 build attempts across four versions of the Debian gcc-5 source.
 Anyone seen anything like this before? anyone here care about gdc in
raspbian and want to assist in finding a root cause and a patch for this?
 To fix the immediate problem I disabled gdc in the gcc-5 source package
and modified gcc-defaults to revert the default gdc version to 4.9 but I do not know how long it will be feasible to maintain that workaround for and so if no fix is forthcoming our only remaining option may be to remove gdc and it's reverse dependencies from Raspbian stretch. Is it possible to get a backtrace on the particular crash? The compiler frontend is aborting because the 'type' parameter in the IntegerExp constructor is a null pointer. However, that does not make sense as all basic types and aliases should have been allocated before compilation began= .
Jun 16 2015
prev sibling parent "Iain Buclaw via D.gnu" <d.gnu puremagic.com> writes:
On 17 June 2015 at 08:10, Iain Buclaw <ibuclaw gdcproject.org> wrote:

 On 17 Jun 2015 02:50, "Peter Green via D.gnu" <d.gnu puremagic.com> wrote=
:
 I maintain raspbian, a project to rebuild Debian for the raspberry pi
(and in principle other armv6 devices but the Pi seems to be the only arm=
v6
 device anyone cares about). We try to support as much of Debian as possib=
le
 but as effectively a single person project do not have the resources to d=
ig
 deeply into problems with minor languages.
 In Raspbian jessie and stretch we have successfully built gdc-4.9 from
the gcc-4.9 source package. However the same cannot be said for gcc-5 whi=
ch
 has recented entered stretch. A log of our most recent attempt can be fou=
nd
 at
 http://buildd.raspbian.org/status/fetch.php?pkg=3Dgcc-5&arch=3Darmhf&ver=
=3D5.1.1-9&stamp=3D1434096865
 . An extract of potentially interesting lines from said log is bwlo.
 tar -x -C /=C2=ABPKGBUILDDIR=C2=BB/src --strip-components=3D1 -f gdc-20=
150414.tar.xz
 <---snip--->
 /=C2=ABPKGBUILDDIR=C2=BB/build/./prev-gcc/xg++ -B/=C2=ABPKGBUILDDIR=C2=
=BB/build/./prev-gcc/
 -B/usr/arm-linux-gnueabihf/bin/ -nostdinc++
 -B/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/sr=
c/.libs
 -B/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/li=
bsupc++/.libs
 -I/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/in=
clude/arm-linux-gnueabihf
 -I/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/in=
clude
 -I/=C2=ABPKGBUILDDIR=C2=BB/src/libstdc++-v3/libsupc++
 -L/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/sr=
c/.libs
 -L/=C2=ABPKGBUILDDIR=C2=BB/build/prev-arm-linux-gnueabihf/libstdc++-v3/li=
bsupc++/.libs
 -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables
 -DHAVE_CONFIG_H -Wno-deprecated -Wstrict-aliasing -Wuninitialized -I. -Id
 -I../../src/gcc -I../../src/gcc/d -I../../src/gcc/../include
 -I../../src/gcc/../libcpp/include  -I../../src/gcc/../libdecnumber
 -I../../src/gcc/../libdecnumber/dpd -I../libdecnumber
 -I../../src/gcc/../libbacktrace   -Id -I../../src/gcc/d/dfrontend
 -I../../src/gcc/d  -o d/expression.dmd.o -c
 ../../src/gcc/d/dfrontend/expression.c
 <----snip------->
 cc1d: ../../src/gcc/d/dfrontend/expression.c:2619:
IntegerExp::IntegerExp(Loc, dinteger_t, Type*): Assertion `type' failed.
 cc1d: internal compiler error: Aborted
 libtool: compile:  /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/gccgo
-B/=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/ -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem /usr/arm-linux-gnueabihf/include -isystem /usr/arm-linux-gnueabihf/sys-include -isystem /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -O2 -g -ffp-contract=3Doff -I =
. -c
 -fgo-pkgpath=3Dmath ../../../src/libgo/go/math/abs.go
 ../../../src/libgo/go/math/acosh.go ../../../src/libgo/go/math/asin.go
 ../../../src/libgo/go/math/asinh.go ../../../src/libgo/go/math/atan.go
 ../../../src/libgo/go/math/atanh.go ../../../src/libgo/go/math/atan2.go
 ../../../src/libgo/go/math/bits.go ../../../src/libgo/go/math/cbrt.go
 ../../../src/libgo/go/math/const.go ../../../src/libgo/go/math/copysign.g=
o
 ../../../src/libgo/go/math/dim.go ../../../src/libgo/go/math/erf.go
 ../../../src/libgo/go/math/exp.go ../../../src/libgo/go/math/expm1.go
 ../../../src/libgo/go/math/floor.go ../../../src/libgo/go/math/frexp.go
 ../../../src/libgo/go/math/gamma.go ../../../src/libgo/go/math/hypot.go
 ../../../src/libgo/go/math/j0.go ../../../src/libgo/go/math/j1.go
 ../../../src/libgo/go/math/jn.go ../../../src/libgo/go/math/ldexp.go
 ../../../src/libgo/go/math/lgamma.go ../../../src/libgo/go/math/log.go
 ../../../src/libgo/go/math/log1p.go ../../../src/libgo/go/math/log10.go
 ../../../src/libgo/go/math/logb.go ../../../src/libgo/go/math/mod.go
 ../../../src/libgo/go/math/modf.go ../../../src/libgo/go/math/nextafter.g=
o
 ../../../src/libgo/go/math/pow.go ../../../src/libgo/go/math/pow10.go
 ../../../src/libgo/go/math/remainder.go
 ../../../src/libgo/go/math/signbit.go ../../../src/libgo/go/math/sin.go
 ../../../src/libgo/go/math/sincos.go ../../../src/libgo/go/math/sinh.go
 ../../../src/libgo/go/math/sqrt.go ../../../src/libgo/go/math/tan.go
 ../../../src/libgo/go/math/tanh.go ../../../src/libgo/go/math/unsafe.go -=
o
 math.o >/dev/null 2>&1
 if [ x"" !=3D x ]; then \
   /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -B/=C2=ABPKGBUILDDIR=C2=BB/=
build/./gcc/
 -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem
 /usr/arm-linux-gnueabihf/include -isystem
 /usr/arm-linux-gnueabihf/sys-include -isystem
 /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include    -c -DHAVE_CONFIG_H -g -O2  =
-I.
 -I../../../src/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compa=
t
 -Wstrict-prototypes -pedantic  -fPIC
 ../../../src/libiberty/simple-object-elf.c -o noasan/simple-object-elf.o;=
\
 else true; fi
 /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -B/=C2=ABPKGBUILDDIR=C2=BB/bu=
ild/./gcc/
 -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem
 /usr/arm-linux-gnueabihf/include -isystem
 /usr/arm-linux-gnueabihf/sys-include -isystem
 /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include    -c -DHAVE_CONFIG_H -g -O2  =
-I.
 -I../../../src/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compa=
t
 -Wstrict-prototypes -pedantic  ../../../src/libiberty/simple-object-elf.c
 -o simple-object-elf.o
 libtool: compile:  /=C2=ABPKGBUILDDIR=C2=BB/build/./gcc/xgcc -shared-li=
bgcc
 -B/=C2=ABPKGBUILDDIR=C2=BB/build/./gcc -nostdinc++
 -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/src
 -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/src/.li=
bs
 -L/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libstdc++-v3/libsupc=
++/.libs
 -B/usr/arm-linux-gnueabihf/bin/ -B/usr/arm-linux-gnueabihf/lib/ -isystem
 /usr/arm-linux-gnueabihf/include -isystem
 /usr/arm-linux-gnueabihf/sys-include -isystem
 /=C2=ABPKGBUILDDIR=C2=BB/build/sys-include -D_GNU_SOURCE -D_DEBUG
 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
 -DHAVE_RPC_XDR_H=3D1 -DHAVE_TIRPC_RPC_XDR_H=3D0 -I.
 -I../../../../src/libsanitizer/sanitizer_common -I.. -I
 ../../../../src/libsanitizer/include -isystem
 ../../../../src/libsanitizer/include/system -Wall -W -Wno-unused-paramete=
r
 -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptio=
ns
 -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=3Dhidden
 -Wno-variadic-macros -I../../libstdc++-v3/include
 -I../../libstdc++-v3/include/arm-linux-gnueabihf
 -I../../../../src/libsanitizer/../libstdc++-v3/libsupc++ -std=3Dgnu++11
 -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I
 ../../../../src/libsanitizer/../libba!
 cktrace -I ../libbacktrace -I ../../../../src/libsanitizer/../include
-include ../../../../src/libsanitizer/libbacktrace/backtrace-rename.h -g -O2 -D_GNU_SOURCE -MT sanitizer_deadlock_detector1.lo -MD -MP -MF .deps/sanitizer_deadlock_detector1.Tpo -c ../../../../src/libsanitizer/sanitizer_common/sanitizer_deadlock_detector=
1.cc
 -o sanitizer_deadlock_detector1.o >/dev/null 2>&1
 0x6034ef crash_signal
         ../../src/gcc/toplev.c:383
 Please submit a full bug report,
 with preprocessed source if appropriate.
 Please include the complete backtrace with any bug report.
 See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.
 The bug is not reproducible, so it is likely a hardware or OS problem.
 Makefile:583: recipe for target 'core/thread.o' failed
 make[6]: *** [core/thread.o] Error 1
 make[6]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos/libdruntime=
'
 Makefile:395: recipe for target 'all-recursive' failed
 make[5]: *** [all-recursive] Error 1
 make[5]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos'
 Makefile:314: recipe for target 'all' failed
 make[4]: *** [all] Error 2
 make[4]: Leaving directory
'/=C2=ABPKGBUILDDIR=C2=BB/build/arm-linux-gnueabihf/libphobos'
 Makefile:18154: recipe for target 'all-target-libphobos' failed
 make[3]: *** [all-target-libphobos] Error 2
 make[3]: *** Waiting for unfinished jobs....

 Despite the assertion in the error message that "The bug is not
reproducible, so it is likely a hardware or OS problem." I have got substatailly the same error in a total of 5 build attempts across four versions of the Debian gcc-5 source.
 Anyone seen anything like this before? anyone here care about gdc in
raspbian and want to assist in finding a root cause and a patch for this?
 To fix the immediate problem I disabled gdc in the gcc-5 source package
and modified gcc-defaults to revert the default gdc version to 4.9 but I =
do
 not know how long it will be feasible to maintain that workaround for and
 so if no fix is forthcoming our only remaining option may be to remove gd=
c
 and it's reverse dependencies from Raspbian stretch.

 Is it possible to get a backtrace on the particular crash?  The compiler
 frontend is aborting because the 'type' parameter in the IntegerExp
 constructor is a null pointer.   However, that does not make sense as all
 basic types and aliases should have been allocated before compilation beg=
an.

I cannot reproduce this on upstream HEAD.  I will get in touch with
Matthias and request to pull in updates for the next round of stable gcc
version releases.  If you still exhibit the problem after updating, I can
only conclude that there is something wrong either with your build
environment, or the way that you have patched gcc and/or gdc in Debian.

Regards
Iain
Jun 18 2015