------- Comment #31 from joel at gcc dot gnu dot org 2008-04-03 00:10 -------
(In reply to comment #30) > Did you look at what happens in Initialize_TCB to the variable Success ? After waiting and waiting at the hospital today, I had plenty of time to think. My guess was that the saved copy of %ebx on the stack was getting corrupted. About an hour of playing on my laptop, I found the culprit!! The pthread_condattr_t structure in s-opsinte-rtems.ads was one 4 byte integer field too short!!! I also noticed a typo in the pthread_attr_t structure. I have no idea how this worked on powerpc, sparc, and mips so well and only failed on i386. Must just be lucky on the alignment or something and missed stuff on the stack that mattered. Here is the much improved ACATS with this change on i386. Many appear to be floating point issues. The last run I sent to the mailing list had 307 failures. === acats Summary === # of expected passes 2286 # of unexpected failures 26 # of unsupported tests 3 *** FAILURES: c34014h c52103q c52104k c64005c c64005d c953002 cd1009w cd5011e cxg2002 cxg2003 cxg2004 cxg2006 cxg2007 cxg2010 cxg2011 cxg2012 cxg2013 cxg2014 cxg2015 cxg2016 cxg2017 cxg2018 cxg2019 cxg2020 cxg2021 la14012 I will run overnight and file more test results on the mailing list. Patch will be attached in a minute. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35284