Macroize -m32/-mx32 configure checks
Prepare for additional configure checks that would be needed
for new multiple personalities support.
* m4/mpers.m4: New file.
* configure.ac: Use it.
diff --git a/configure.ac b/configure.ac
index 40cdc0c..8574939 100644
--- a/configure.ac
+++ b/configure.ac
@@ -852,33 +852,8 @@
fi
fi
-have_m32=no
-case "$arch" in
- aarch64|powerpc64|sparc64|tile|x32|x86_64)
- AC_MSG_CHECKING([for -m32 runtime support])
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -m32"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return 0;}]])],
- [have_m32=yes],[have_m32=no],[have_m32=no])
- CFLAGS="$saved_CFLAGS"
- AC_MSG_RESULT($have_m32)
- ;;
-esac
-AM_CONDITIONAL([HAVE_M32_RUNTIME], [test "$have_m32" = yes])
-
-have_mx32=no
-case "$arch" in
- x86_64)
- AC_MSG_CHECKING([for -mx32 runtime support])
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mx32"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return 0;}]])],
- [have_mx32=yes],[have_mx32=no],[have_mx32=no])
- CFLAGS="$saved_CFLAGS"
- AC_MSG_RESULT($have_mx32)
- ;;
-esac
-AM_CONDITIONAL([HAVE_MX32_RUNTIME], [test "$have_mx32" = yes])
+st_MPERS([m32], [aarch64|powerpc64|sparc64|tile|x32|x86_64])
+st_MPERS([mx32], [x86_64])
AC_CONFIG_FILES([Makefile tests/Makefile tests-m32/Makefile tests-mx32/Makefile])
AC_OUTPUT
diff --git a/m4/mpers.m4 b/m4/mpers.m4
new file mode 100644
index 0000000..6cb01de
--- /dev/null
+++ b/m4/mpers.m4
@@ -0,0 +1,42 @@
+AC_DEFUN([st_MPERS],[
+
+pushdef([MPERS_NAME], translit([$1], [a-z], [A-Z]))
+pushdef([HAVE_RUNTIME], [HAVE_]MPERS_NAME[_RUNTIME])
+pushdef([CFLAG], [-$1])
+pushdef([st_cv_cc], [st_cv_$1_cc])
+pushdef([st_cv_runtime], [st_cv_$1_runtime])
+
+case "$arch" in
+ [$2])
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS CFLAG"
+ AC_CACHE_CHECK([for CFLAG compile support], [st_cv_cc],
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <stdint.h>
+ int main(){return 0;}]])],
+ [st_cv_cc=yes],
+ [st_cv_cc=no])])
+ if test $st_cv_cc = yes; then
+ AC_CACHE_CHECK([for CFLAG runtime support], [st_cv_runtime],
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdint.h>
+ int main(){return 0;}]])],
+ [st_cv_runtime=yes],
+ [st_cv_runtime=no],
+ [st_cv_runtime=no])])
+ fi
+ CFLAGS="$saved_CFLAGS"
+ ;;
+
+ *)
+ st_cv_runtime=no
+ ;;
+esac
+
+AM_CONDITIONAL(HAVE_RUNTIME, [test "$st_cv_runtime" = yes])
+
+popdef([st_cv_runtime])
+popdef([st_cv_cc])
+popdef([CFLAG])
+popdef([HAVE_RUNTIME])
+popdef([MPERS_NAME])
+
+])