Hi Robin, >> This will occur on any 32-bit target. The following patch (using >> ssize_t instead) allowed the code to compile: > > thanks, included your fix and attempted a more generic version of the > 186 test. > > I also continued debugging some fails further: > > - Most of the MurmurHash fails are simply due to the wrong byte order > being asserted but I did not yet check whether multi-chunk hashes are > more complicated to get right - I suppose not, though. > > - The regex searches are even documented to not work properly on > big-endian platforms. I still guess they could be fixed without too much > effort. > > - Math unit tests fail due to lower precision than on other machines. > Maybe this is because I only tested using -O0.
good. I'm seeing those two, but at the moment concentrate on a couple of Solaris/SPARC specific issues (mcontext_t was wrong, causing memory corruption; need a different variant of makecontext; stack needs doubleword alignment; some minor stuff). 64-bit results are not too bad ATM: === gdc Summary for unix/-m64 === # of expected passes 29159 # of unexpected failures 199 # of unsupported tests 20 === libphobos Summary for unix/-m64 === # of expected passes 398 # of unexpected failures 22 and some of the failures also occur on Solaris/x86, but 32-bit execution tests are terrible right now, mostly due to the same issue, I believe: FAIL: libphobos.aa/test_aa.d execution test Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0x0009c9b0 in rt.aaA.Impl.length() const (this=...) at /vol/gcc/src/hg/trunk/solaris/libphobos/libdruntime/rt/aaA.d:87 87 assert(used >= deleted); (gdb) where #0 0x0009c9b0 in rt.aaA.Impl.length() const (this=...) at /vol/gcc/src/hg/trunk/solaris/libphobos/libdruntime/rt/aaA.d:87 #1 0x0009c960 in rt.aaA.AA.empty() const (this=...) at /vol/gcc/src/hg/trunk/solaris/libphobos/libdruntime/rt/aaA.d:44 #2 0x0009e83c in _aaValues (aa=..., keysz=4, valsz=1, tiValueArray=0x718fc <initializer for TypeInfo_AS7test_aa15testKeysValues1FZ1T>) at /vol/gcc/src/hg/trunk/solaris/libphobos/libdruntime/rt/aaA.d:513 #3 0x00082688 in object.values!(test_aa.testKeysValues1().T[int], test_aa.testKeysValues1().T, int).values(test_aa.testKeysValues1().T[int]) (aa=...) at /vol/gcc/src/hg/trunk/solaris/libphobos/libdruntime/object.d:2171 #4 0x00077a9c in test_aa.testKeysValues1() () at /vol/gcc/src/hg/trunk/solaris/libphobos/testsuite/libphobos.aa/test_aa.d:56 #5 0x00077604 in D main () at /vol/gcc/src/hg/trunk/solaris/libphobos/testsuite/libphobos.aa/test_aa.d:3 1: x/i $pc => 0x9c9b0 <_D2rt3aaA4Impl6lengthMxFNaNbNdNiZk+32>: ld [ %g1 + 8 ], %g2 (gdb) p/x $g1 $1 = 0x8 Investigating this is my next task. > @Iain: With the patch as it is - hoping no additional tab/space damage > :) - is there any chance of getting it upstream anytime soon? I noticed you missed one piece of Iain's typeinfo.cc patch, btw.: diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc --- a/gcc/d/typeinfo.cc +++ b/gcc/d/typeinfo.cc @@ -886,7 +886,7 @@ public: if (cd->isCOMinterface ()) flags |= ClassFlags::isCOMclass; - this->layout_field (build_integer_cst (flags)); + this->layout_field (build_integer_cst (flags, d_uint_type)); /* void *deallocator; OffsetTypeInfo[] m_offTi; (not implemented) Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University