Try to catch the SIGBUS, as suggested by Nicholas Clark.
Jarkko Hietaniemi [Thu, 27 Dec 2001 14:15:27 +0000 (14:15 +0000)]
p4raw-id: //depot/perl@13908

Configure

index 7110f31..30a2b37 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Wed Dec 26 20:19:46 EET 2001 [metaconfig 3.0 PL70]
+# Generated on Thu Dec 27 17:16:22 EET 2001 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -13477,6 +13477,10 @@ $cat >try.c <<EOCP
 #define U32 $u32type
 #define BYTEORDER 0x$byteorder
 #define U8 $u8type
+#include <signal.h>
+#ifdef SIGBUS
+$signal_t bletch(s) int s; { exit(4); }
+#endif
 int main() {
 #if BYTEORDER == 0x1234 || BYTEORDER == 0x4321
     U8 buf[] = "\0\0\0\1\0\0\0\0";
@@ -13490,6 +13494,10 @@ int main() {
 
     fflush(stdout);
 
+#ifdef SIGBUS
+    signal(SIGBUS, bletch);
+#endif
+
     for (i = 0; i < 4; i++) {
        up = (U32*)(buf + i);
        if (! ((*up == 1 << (8*i)) ||   /* big-endian */