aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/site-conf/aclocal.m41
-rw-r--r--contrib/site-conf/configure.ac4
-rw-r--r--contrib/site-conf/m4/squeak.m415
3 files changed, 20 insertions, 0 deletions
diff --git a/contrib/site-conf/aclocal.m4 b/contrib/site-conf/aclocal.m4
index 65b9fa316a..277c895a37 100644
--- a/contrib/site-conf/aclocal.m4
+++ b/contrib/site-conf/aclocal.m4
@@ -53,3 +53,4 @@ m4_include([m4/ssh.m4])
m4_include([m4/startupnotification.m4])
m4_include([m4/sudo.m4])
m4_include([m4/xffm.m4])
+m4_include([m4/squeak.m4])
diff --git a/contrib/site-conf/configure.ac b/contrib/site-conf/configure.ac
index bd5ce4dfad..fb342b061a 100644
--- a/contrib/site-conf/configure.ac
+++ b/contrib/site-conf/configure.ac
@@ -8,4 +8,8 @@ AC_GNU_SOURCE
OE_CHECK_BUILTIN
OE_CHECK_GNU
+AC_C_DOUBLE_ALIGNMENT
+AC_C_DOUBLE_ORDER
+
+
AC_OUTPUT([])
diff --git a/contrib/site-conf/m4/squeak.m4 b/contrib/site-conf/m4/squeak.m4
new file mode 100644
index 0000000000..9d16f468b4
--- /dev/null
+++ b/contrib/site-conf/m4/squeak.m4
@@ -0,0 +1,15 @@
+# Tests from squeak
+AC_DEFUN([AC_C_DOUBLE_ALIGNMENT],
+[AC_CACHE_CHECK([whether unaligned access to doubles is ok], ac_cv_double_align,
+ AC_TRY_RUN([f(int i){*(double *)i=*(double *)(i+4);}
+ int main(){char b[[12]];f(b);return 0;}],
+ ac_cv_double_align="yes", ac_cv_double_align="no"))
+test "$ac_cv_double_align" = "no" && AC_DEFINE(DOUBLE_WORD_ALIGNMENT)])
+
+AC_DEFUN([AC_C_DOUBLE_ORDER],
+[AC_CACHE_CHECK([whether doubles are stored in Squeak order], ac_cv_double_order,
+ AC_TRY_RUN([union { double d; int i[[2]]; } d;
+ int main(void) { d.d= 1.0; return d.i[[0]] == 0; }],
+ ac_cv_double_order="yes", ac_cv_double_order="no"))
+test "$ac_cv_double_order" = "no" && AC_DEFINE(DOUBLE_WORD_ORDER)])
+