Rainer Orth <r...@cebitec.uni-bielefeld.de> writes: > * On sparc, I didn't get that far, unfortunately: as I mentioned, many > compilations die with SIGBUS: > > libtool: compile: /var/gcc/regression/trunk/11.5-gcc/build/./gcc/gdc > -B/var/gcc/regression/trunk/11.5-gcc/build/./gcc/ > -B/vol/gcc/sparc-sun-solaris2.11/bin/ -B/vol/gcc/sparc-sun-solaris2.11/lib/ > -isystem /vol/gcc/sparc-sun-solaris2.11/include -isystem > /vol/gcc/sparc-sun-solaris2.11/sys-include -fno-checking -fPIC -O2 -g > -nostdinc -I /vol/gcc/src/hg/trunk/local/libphobos/libdruntime -I . -c > /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d > -fversion=Shared -o core/.libs/thread.o > d21: internal compiler error: Bus Error > 0xbb5507 crash_signal > /vol/gcc/src/hg/trunk/local/gcc/toplev.c:325 > 0x518700 IntegerExp::toInteger() > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2943 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > 0x4d1543 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 > 0x4d1543 interpret(Statement*, InterState*) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 > 0x4d263b interpretFunction > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 > 0x4d263b interpretFunction > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > 0x4d14df interpret(Expression*, InterState*, CtfeGoal) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > 0x4d14df interpret(Expression*, InterState*, CtfeGoal) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 > 0x5243d7 DeclarationExp::accept(Visitor*) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > 0x4d1543 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 > 0x4d1543 interpret(Statement*, InterState*) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 > 0x4d263b interpretFunction > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 > 0x4d263b interpretFunction > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > 0x4d14df interpret(Expression*, InterState*, CtfeGoal) > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 > 0x4d05c3 interpret > /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 > > Will need to dig further here.
It's exactly as I suspected: $ d21 /vol/gcc/src/hg/trunk/local/libphobos/libdruntime/core/thread.d -mcpu=v9 -fversion=Shared -I /vol/gcc/src/hg/trunk/local/libphobos/libdruntime -o thread.s Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0x00518700 in IntegerExp::toInteger (this=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2942 2942 return value; (gdb) where #0 0x00518700 in IntegerExp::toInteger (this=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.c:2942 #1 0x004d8f24 in Interpreter::visit(BinExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #2 0x005268ec in CmpExp::accept(Visitor*) () #3 0x004d05c4 in interpret (pue=0xffbfbbf4, e=0x22778f0, istate=0xffbfc144, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #4 0x004d6254 in Interpreter::visit(ForStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #5 0x005aec68 in ForStatement::accept(Visitor*) () #6 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #7 0x005b5708 in CompoundStatement::accept(Visitor*) () #8 0x004d4810 in Interpreter::visit(ScopeStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #9 0x005aec08 in ScopeStatement::accept(Visitor*) () #10 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #11 0x005b5708 in CompoundStatement::accept(Visitor*) () #12 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #13 0x005b5708 in CompoundStatement::accept(Visitor*) () #14 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, pue=0xffbfc07c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 #15 interpret (s=0x22ea0f8, istate=0xffbfc144) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 #16 0x004d263c in interpretFunction (thisarg=0x22f6198, arguments=<optimized out>, istate=0xffbfcb5c, fd=0x2270cc0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 #17 interpretFunction (fd=0x2270cc0, istate=0xffbfcb5c, arguments=<optimized out>, thisarg=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 #18 0x004e22ac in Interpreter::visit(CallExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #19 0x00486cb8 in CallExp::accept (this=0x22ea380, v=0xffbfc2cc) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878 #20 0x004d05c4 in interpret (pue=0xffbfc344, e=0x22ea380, istate=0xffbfcb5c, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #21 0x004d14e0 in interpret (e=0x22ea380, istate=0xffbfcb5c, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 #22 0x004e33dc in Interpreter::interpretAssignCommon(BinExp*, UnionExp (*)(Loc, Type*, Expression*, Expression*), int) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #23 0x00526d18 in ConstructExp::accept(Visitor*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:672 #24 0x004d05c4 in interpret (pue=0xffbfc5bc, e=0x22ea348, istate=0xffbfcb5c, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #25 0x004d14e0 in interpret (e=0x22ea348, istate=0xffbfcb5c, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 #26 0x004de01c in Interpreter::visit(DeclarationExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #27 0x005243d8 in DeclarationExp::accept (this=0x2270170, v=0xffbfc79c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661 #28 0x004d05c4 in interpret (pue=0xffbfca94, e=0x2270170, istate=0xffbfcb5c, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #29 0x004d5ab8 in Interpreter::visit(ExpStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #30 0x005b56d8 in ExpStatement::accept(Visitor*) () #31 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #32 0x005b5708 in CompoundStatement::accept(Visitor*) () #33 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #34 0x005b5708 in CompoundStatement::accept(Visitor*) () #35 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, pue=0xffbfca94) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 #36 interpret (s=0x22eabb0, istate=0xffbfcb5c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 #37 0x004d263c in interpretFunction (thisarg=0x22f6198, arguments=<optimized out>, istate=0xffbfd964, fd=0x226fed8) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 #38 interpretFunction (fd=0x226fed8, istate=0xffbfd964, arguments=<optimized out>, thisarg=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 #39 0x004e22ac in Interpreter::visit(CallExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #40 0x00486cb8 in CallExp::accept (this=0x22ef2b0, v=0xffbfcce4) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878 #41 0x004d05c4 in interpret (pue=0xffbfcd5c, e=0x22ef2b0, istate=0xffbfd964, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #42 0x004d14e0 in interpret (e=0x22ef2b0, istate=0xffbfd964, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 #43 0x004e33dc in Interpreter::interpretAssignCommon(BinExp*, UnionExp (*)(Loc, Type*, Expression*, Expression*), int) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #44 0x00526d18 in ConstructExp::accept(Visitor*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:672 #45 0x004d05c4 in interpret (pue=0xffbfcfd4, e=0x22ef240, istate=0xffbfd964, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #46 0x004d14e0 in interpret (e=0x22ef240, istate=0xffbfd964, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 #47 0x004de01c in Interpreter::visit(DeclarationExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #48 0x005243d8 in DeclarationExp::accept (this=0x22eef08, v=0xffbfd1b4) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:661 #49 0x004d05c4 in interpret (pue=0xffbfd89c, e=0x22eef08, istate=0xffbfd964, goal=ctfeNeedNothing) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #50 0x004d5ab8 in Interpreter::visit(ExpStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #51 0x005b56d8 in ExpStatement::accept(Visitor*) () #52 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #53 0x005b5708 in CompoundStatement::accept(Visitor*) () #54 0x004d6140 in Interpreter::visit(ForStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #55 0x005aec68 in ForStatement::accept(Visitor*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/statement.h:230 #56 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #57 0x005b5708 in CompoundStatement::accept(Visitor*) () #58 0x004d4810 in Interpreter::visit(ScopeStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #59 0x005aec08 in ScopeStatement::accept (this=0x22eefa8, v=0xffbfd6dc) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/statement.h:230 #60 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #61 0x005b5708 in CompoundStatement::accept(Visitor*) () #62 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #63 0x005b5708 in CompoundStatement::accept(Visitor*) () #64 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, pue=0xffbfd89c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 #65 interpret (s=0x22f5f18, istate=0xffbfd964) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 #66 0x004d263c in interpretFunction (thisarg=0x0, arguments=<optimized out>, istate=0xffbfde94, fd=0x226f700) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 #67 interpretFunction (fd=0x226f700, istate=0xffbfde94, arguments=<optimized out>, thisarg=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 #68 0x004e22ac in Interpreter::visit(CallExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #69 0x00486cb8 in CallExp::accept (this=0x226d8e0, v=0xffbfdaec) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878 #70 0x004d05c4 in interpret (pue=0xffbfddcc, e=0x226d8e0, istate=0xffbfde94, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #71 0x004d6768 in Interpreter::visit(ReturnStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #72 0x005b5abc in ReturnStatement::accept(Visitor*) () #73 0x004d475c in Interpreter::visit(CompoundStatement*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #74 0x005b5708 in CompoundStatement::accept(Visitor*) () #75 0x004d1544 in interpret (istate=<optimized out>, s=<optimized out>, pue=0xffbfddcc) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6017 #76 interpret (s=0x22f6000, istate=0xffbfde94) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:6024 #77 0x004d263c in interpretFunction (thisarg=0x0, arguments=<optimized out>, istate=0x0, fd=0x226d458) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:906 #78 interpretFunction (fd=0x226d458, istate=0x0, arguments=<optimized out>, thisarg=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:726 #79 0x004e22ac in Interpreter::visit(CallExp*) () at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.h:292 #80 0x00486cb8 in CallExp::accept (this=0x2264840, v=0xffbfe01c) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:878 #81 0x004d05c4 in interpret (pue=0xffbfe094, e=0x2264840, istate=0x0, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5984 #82 0x004d14e0 in interpret (e=0x2264840, istate=0x0, goal=ctfeNeedRvalue) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:5994 #83 0x004d19d8 in ctfeInterpret (e=0x2264840) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:657 #84 ctfeInterpret (e=0x2264840) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dinterpret.c:641 #85 0x00490be8 in Expression::ctfeInterpret (this=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/expression.h:205 #86 PragmaDeclaration::semantic (this=0x22648f8, sc=0x2263200) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:1062 #87 0x00490414 in AttribDeclaration::semantic (this=0x22649c8, sc=0x2263200) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:186 #88 0x00502f40 in TemplateInstance::expandMembers (this=this@entry=0x1969bb0, sc2=sc2@entry=0x2263200) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5923 #89 0x00502f90 in TemplateInstance::tryExpandMembers (this=0x1969bb0, sc2=0x2263200) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5941 #90 0x00508d20 in TemplateInstance::semantic (fargs=0x0, sc=0x2262c48, this=0x1969bb0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:6219 #91 TemplateInstance::semantic (this=0x1969bb0, sc=0x2262c48, fargs=0x0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dtemplate.c:5962 #92 0x00587ab8 in TypeInstance::resolve (this=0x1969fb8, loc=..., sc=0x2262c48, pe=0xffbfe4a0, pt=0xffbfe49c, ps=0xffbfe4a4, intypeid=false) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/mtype.c:7051 #93 0x0057470c in TypeInstance::toDsymbol (this=0x1969fb8, sc=0x2262c48) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/mtype.c:7101 #94 0x004c7a14 in AliasDeclaration::aliasSemantic (this=0x196a020, sc=0x2262c48) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/declaration.c:401 #95 0x00490414 in AttribDeclaration::semantic (this=0x196ae08, sc=0x193fe38) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/attrib.c:186 #96 0x004e8688 in Module::semantic (this=0x193f6a0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dmodule.c:822 #97 Module::semantic (this=0x193f6a0) at /vol/gcc/src/hg/trunk/local/gcc/d/dmd/dmodule.c:797 #98 0x00601f9c in d_parse_file () at /vol/gcc/src/hg/trunk/local/gcc/d/d-lang.cc:1115 #99 0x00bb5580 in compile_file () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:455 #100 0x00bb8604 in toplev::main(int, char**) () #101 0x0142da50 in main (argc=8, argv=0xffbfe8cc) at /vol/gcc/src/hg/trunk/local/gcc/main.c:39 1: x/i $pc => 0x518700 <IntegerExp::toInteger()+16>: ldtw [ %o0 + 0x20 ], %o0 (gdb) p/x $o0 $1 = 0xffbfba04 It's indeed an unaligned access: the ldtw insn requires 8-byte alignment, but the source isn't. gdb misreports the signal as SIGSEGV, but truss shows SIGBUS with an alignment error: Incurred fault #5, FLTACCESS %pc = 0x00518700 siginfo: SIGBUS BUS_ADRALN addr=0xFFBFBB24 Received signal #10, SIGBUS [caught] siginfo: SIGBUS BUS_ADRALN addr=0xFFBFBB24 Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University