diff -ruN parrot-1.0.0/config/auto/alignptrs/test_c.in parrot-1.0.0.XF/config/auto/alignptrs/test_c.in --- parrot-1.0.0/config/auto/alignptrs/test_c.in 2009-03-09 07:32:47.000000000 +1100 +++ parrot-1.0.0.XF/config/auto/alignptrs/test_c.in 2009-03-26 00:56:23.158900414 +1100 @@ -14,6 +14,10 @@ void bletch(int s) { exit(1); } #endif +#ifdef __linux +#include +#endif /* __linux */ + int main(int argc, char **argv) { @@ -34,11 +38,15 @@ signal(SIGBUS, bletch); #endif +#if defined(PR_SET_UNALIGN) && defined(PR_UNALIGN_SIGBUS) + prctl(PR_SET_UNALIGN, PR_UNALIGN_SIGBUS, 0, 0, 0); +#endif + for (i = 0; i < 32; i ++) space[i] = 0; for (c = argv[1]; *c; c++) align = align * 10 + ((int)*c - '0'); -#if defined(__alpha) +#if defined(__alpha) && !defined(PR_SET_UNALIGN) if (align < 8) { printf("Soft failure hack for systems that simulate unaligned access\n"); return 1;