From ab1e1edff3fa584536a072495d4bcff400339f40 Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Wed, 5 Aug 2009 01:32:02 -0400 Subject: [PATCH] Attempt at detecting 64bit compilation flags between gcc, old, and new versions of sun cc Gcc accepts -m64, just as newer version of Suncc. Older Suncc required -xarch=v9 (SPARC) or -xarch=amd64 (x86-64) to generate 64bit code. --- configure.in | 65 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/configure.in b/configure.in index d02d7f8..61d0e95 100644 --- a/configure.in +++ b/configure.in @@ -585,14 +585,73 @@ elif test "$ac_cv_uname_s" = "SunOS"; then ac_cv_ps_cols=9 AC_MSG_RESULT([using nagios-plugins internal ps command (pst3) for solaris]) if test `isainfo -b` = 64 ; then - PST3CFLAGS="-m64" - AC_SUBST(PST3CFLAGS) - AC_MSG_NOTICE([using 64bit pst3]) + pst3_use_64bit=1 + AC_MSG_NOTICE([using 64bit pst3]) else AC_MSG_NOTICE([using 32bit pst3]) fi EXTRAS_ROOT="$EXTRAS_ROOT pst3" + if test "$pst3_use_64bit" = 1; then + dnl Test if we can actually compile code in 64bit + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -m64" + pst3_64bit_working=0 + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-m64" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -m64 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -m64]) + ]) + CFLAGS=$old_cflags + if test "$pst3_64bit_working" = 0; then + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -xarch=v9" + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-xarch=v9" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -xarch=v9 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -xarch=v9]) + ]) + CFLAGS=$old_cflags + fi + if test "$pst3_64bit_working" = 0; then + old_cflags=$CFLAGS + CFLAGS="$CFLAGS -xarch=amd64" + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([], [ +return sizeof(void*) == 8 ? 0 : 1; + ]) + ],[ + PST3CFLAGS="-xarch=amd64" + AC_SUBST(PST3CFLAGS) + pst3_64bit_working=1 + AC_MSG_NOTICE([using -xarch=amd64 for 64bit code]) + ],[ + pst3_64bit_working=0 + AC_MSG_NOTICE([compiler do not like -xarch=amd64]) + ]) + CFLAGS=$old_cflags + fi + if test "$pst3_64bit_working" = 0; then + AC_MSG_ERROR([I don't know how to build a 64-bit object!]) + fi + fi + dnl Removing this for the moment - Ton dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation dnl Limitation that command name is not available -- 2.30.2