summaryrefslogtreecommitdiff
blob: 096b5bd8ca13bb4755016c0c5d2d91f36dce6d30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--- ocaml/configure	2003/01/09 12:01:51	1.183
+++ ocaml/configure	2003/03/10 17:04:00	1.184
@@ -391,17 +391,25 @@ esac
 
 # Determine alignment constraints
 
-sh ./runtest dblalign.c
-case $? in
-  0) echo "Doubles can be word-aligned."
-     echo "#undef ARCH_ALIGN_DOUBLE" >> m.h;;
-  1) echo "Doubles must be doubleword-aligned."
-     echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
-  *) echo "Something went wrong during alignment determination for doubles."
-     echo "I'm going to assume this architecture has alignment constraints over doubles."
-     echo "That's a safe bet: Objective Caml will work even if"
-     echo "this architecture has actually no alignment constraints."
-     echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
+case "$host" in
+  sparc-*-*)
+    # On Sparc V9 with certain versions of gcc, determination of double
+    # alignment is not reliable (PR#1521), hence force it
+    echo "Doubles must be doubleword-aligned."
+    echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
+  *)
+    sh ./runtest dblalign.c
+    case $? in
+      0) echo "Doubles can be word-aligned."
+         echo "#undef ARCH_ALIGN_DOUBLE" >> m.h;;
+      1) echo "Doubles must be doubleword-aligned."
+         echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
+      *) echo "Something went wrong during alignment determination for doubles."
+         echo "I'm going to assume this architecture has alignment constraints over doubles."
+         echo "That's a safe bet: Objective Caml will work even if"
+         echo "this architecture has actually no alignment constraints."
+         echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
+    esac;;
 esac
 
 if $int64_native; then