diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2004-06-12 14:50:52 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2004-06-12 14:50:52 +0000 |
commit | 1882ecd18f72470862689ea653f3934a4ca3e997 (patch) | |
tree | e02478e6e3dd04b0f8de7c239b7bdfa35a968c83 | |
parent | c8bd730465e966622d2602048fc0696ec22e406e (diff) |
ARCH_ALIGN_DOUBLE incorrect sur UltraSparc en mode 64 bits (PR#2572)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6393 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rwxr-xr-x | configure | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -405,8 +405,16 @@ case "$host" in # On Sparc V9 with certain versions of gcc, determination of double # alignment is not reliable (PR#1521), hence force it. # Same goes for hppa. - echo "Doubles must be doubleword-aligned." - echo "#define ARCH_ALIGN_DOUBLE" >> m.h;; + # But there's a knack (PR#2572): + # if we're in 64-bit mode (sizeof(long) == 8), + # we must not doubleword-align floats... + if test $2 = 8; then + echo "Doubles can be word-aligned." + echo "#undef ARCH_ALIGN_DOUBLE" >> m.h + else + echo "Doubles must be doubleword-aligned." + echo "#define ARCH_ALIGN_DOUBLE" >> m.h + fi;; *) sh ./runtest dblalign.c case $? in @@ -425,8 +433,13 @@ esac if $int64_native; then case "$host" in hppa*-*-*) - echo "64-bit integers must be doubleword-aligned." - echo "#define ARCH_ALIGN_INT64" >> m.h;; + if test $2 = 8; then + echo "64-bit integers can be word-aligned." + echo "#undef ARCH_ALIGN_INT64" >> m.h + else + echo "64-bit integers must be doubleword-aligned." + echo "#define ARCH_ALIGN_INT64" >> m.h + fi;; *) sh ./runtest int64align.c case $? in |