From aa67d1675a709a94e7871d1f35968f84df35138b Mon Sep 17 00:00:00 2001 From: Michael Ow Date: Fri, 29 Apr 2011 18:58:48 +0000 Subject: [PATCH] ICU-7577 Fix solaris studio 64 bit option detection. X-SVN-Rev: 29931 --- icu4c/source/aclocal.m4 | 13 +++++++------ icu4c/source/configure | 25 +++++++++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/icu4c/source/aclocal.m4 b/icu4c/source/aclocal.m4 index cbabff0216b..95c9292337d 100644 --- a/icu4c/source/aclocal.m4 +++ b/icu4c/source/aclocal.m4 @@ -253,8 +253,8 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS, # 1. try -m64 CFLAGS="${CFLAGS} -m64" CXXFLAGS="${CXXFLAGS} -m64" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==64)?0:1;}])], - CAN_BUILD_64=yes, CAN_BUILD_64=no) + AC_RUN_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==64)?0:1;}])], + CAN_BUILD_64=yes, CAN_BUILD_64=no, CAN_BUILD_64=unknown) if test "$CAN_BUILD_64" != yes; then # Nope. back out changes. CFLAGS="${CFLAGS_OLD}" @@ -276,14 +276,15 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS, # 1. try -m64 CFLAGS="${CFLAGS} -m64" CXXFLAGS="${CXXFLAGS} -m64" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==64)?0:1;}])], - CAN_BUILD_64=yes, CAN_BUILD_64=no) + AC_RUN_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==64)?0:1;}])], + CAN_BUILD_64=yes, CAN_BUILD_64=no, CAN_BUILD_64=unknown) if test "$CAN_BUILD_64" != yes; then # Nope. back out changes. CFLAGS="${CFLAGS_OLD}" CXXFLAGS="${CXXFLAGS_OLD}" # 2. try the older compiler option ## TODO: cross compile problem + AMD64=`isainfo -n 2>&1 | grep amd64` SOL64=`$CXX -xtarget=generic64 2>&1 && $CC -xtarget=generic64 2>&1 | grep -v usage:` if test -z "$SOL64" && test -n "$AMD64"; then CFLAGS="${CFLAGS} -xtarget=generic64" @@ -358,7 +359,7 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS, AC_MSG_RESULT($CAN_BUILD_64) if test "$CAN_BUILD_64" = yes; then AC_MSG_CHECKING([whether runnable 64-bit binaries are being built ]) - AC_TRY_RUN(int main(void) {return (sizeof(void*)*8==64)?0:1;}, + AC_RUN_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==64)?0:1;}])], BITS_RUN_64=yes, BITS_RUN_64=no, BITS_RUN_64=unknown) AC_MSG_RESULT($BITS_RUN_64); @@ -385,7 +386,7 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS, AC_MSG_RESULT($CAN_BUILD_32) if test "$CAN_BUILD_32" = yes; then AC_MSG_CHECKING([whether runnable 32-bit binaries are being built ]) - AC_TRY_RUN(int main(void) {return (sizeof(void*)*8==32)?0:1;}, + AC_RUN_IFELSE([AC_LANG_SOURCE([int main(void) {return (sizeof(void*)*8==32)?0:1;}])], BITS_RUN_32=yes, BITS_RUN_32=no, BITS_RUN_32=unknown) AC_MSG_RESULT($BITS_RUN_32); CFLAGS_32="${CFLAGS}" diff --git a/icu4c/source/configure b/icu4c/source/configure index eac59825ee3..b0f1e4948be 100755 --- a/icu4c/source/configure +++ b/icu4c/source/configure @@ -4791,16 +4791,22 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # 1. try -m64 CFLAGS="${CFLAGS} -m64" CXXFLAGS="${CXXFLAGS} -m64" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + CAN_BUILD_64=unknown +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(void) {return (sizeof(void*)*8==64)?0:1;} _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_run "$LINENO"; then : CAN_BUILD_64=yes else CAN_BUILD_64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + if test "$CAN_BUILD_64" != yes; then # Nope. back out changes. CFLAGS="${CFLAGS_OLD}" @@ -4822,22 +4828,29 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # 1. try -m64 CFLAGS="${CFLAGS} -m64" CXXFLAGS="${CXXFLAGS} -m64" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + CAN_BUILD_64=unknown +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(void) {return (sizeof(void*)*8==64)?0:1;} _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_run "$LINENO"; then : CAN_BUILD_64=yes else CAN_BUILD_64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + if test "$CAN_BUILD_64" != yes; then # Nope. back out changes. CFLAGS="${CFLAGS_OLD}" CXXFLAGS="${CXXFLAGS_OLD}" # 2. try the older compiler option ## TODO: cross compile problem + AMD64=`isainfo -n 2>&1 | grep amd64` SOL64=`$CXX -xtarget=generic64 2>&1 && $CC -xtarget=generic64 2>&1 | grep -v usage:` if test -z "$SOL64" && test -n "$AMD64"; then CFLAGS="${CFLAGS} -xtarget=generic64"