tags 322972 patch thanks Hi,
I was able to track this bug to line 198 in src/runtime/fmisc.r: dst->table.defvalue = src->table.defvalue;Assembly code generated for this line attempts to copy the defvalue structure by doing a single double-word load and store, even though the defvalue structure is only aligned on a word-boundary. This causes an unaligned trap resulting in the bus error. Tracking the problem down is rather tricky, however the quick-and-dirty solution is to replace this line by an explicit memcpy(). Attached patch implements this change, with it icon builds successfully, passing all the tests.
Best regards, Jurij Smakov [EMAIL PROTECTED] Key: http://www.wooyd.org/pgpkey/ KeyID: C99E03CC
diff -aur a/src/runtime/fmisc.r b/src/runtime/fmisc.r --- a/src/runtime/fmisc.r 2002-07-10 09:49:39.000000000 -0700 +++ b/src/runtime/fmisc.r 2005-12-07 21:35:58.000000000 -0800 @@ -195,7 +195,9 @@ runerr(0); dst->table.size = src->table.size; dst->table.mask = src->table.mask; - dst->table.defvalue = src->table.defvalue; + memcpy((char *) &dst->table.defvalue, + (char *) &src->table.defvalue, + sizeof(dst->table.defvalue)); for (i = 0; i < HSegs && src->table.hdir[i] != NULL; i++) memcpy((char *)dst->table.hdir[i], (char *)src->table.hdir[i], src->table.hdir[i]->blksize);