1
1

disable GCC-style inline assembly when on AIX. The IBM compiler does a really,

really crappy job of trying to emulate the inline assembly mode of GCC (and will
completely rewite the assembly, which seems to be bad in my opinion).  GCC and
the AIX assembler don't see eye-to-eye on what GCC emits when doing inline
assembly.  That's two compilers and no actual working support.  So just punt and
fall back to XLC inline assembly or non-inlined assembly.

This commit was SVN r7800.
Этот коммит содержится в:
Brian Barrett 2005-10-18 19:04:35 +00:00
родитель 818b4af554
Коммит 76d1a808e9

Просмотреть файл

@ -500,17 +500,26 @@ AC_DEFUN([OMPI_CHECK_INLINE_C_GCC],[
AC_MSG_CHECKING([if $CC supports GCC inline assembly])
if test ! "$assembly" = "" ; then
AC_RUN_IFELSE(AC_LANG_PROGRAM([[
case $host in
*-aix*)
# the AIX compilers and linkers really don't do gcc
# inline assembly right - disable for now.
asm_result="no (AIX)"
;;
*)
if test ! "$assembly" = "" ; then
AC_RUN_IFELSE(AC_LANG_PROGRAM([[
AC_INCLUDES_DEFAULT]],
[[int ret = 1;
__asm__ __volatile__ ($assembly);
return ret;]]),
[asm_result="yes"], [asm_result="no"],
[asm_result="unknown"])
else
assembly="test skipped - assuming no"
fi
[asm_result="yes"], [asm_result="no"],
[asm_result="unknown"])
else
assembly="test skipped - assuming no"
fi
;;
esac
# if we're cross compiling, just try to compile and figure good enough
if test "$asm_result" = "unknown" ; then
@ -544,18 +553,26 @@ AC_DEFUN([OMPI_CHECK_INLINE_CXX_GCC],[
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([if $CXX supports GCC inline assembly])
if test ! "$assembly" = "" ; then
AC_RUN_IFELSE(AC_LANG_PROGRAM([[
case $host in
*-aix*)
# the AIX compilers and linkers really don't do gcc
# inline assembly right - disable for now.
asm_result="no (AIX)"
;;
*)
if test ! "$assembly" = "" ; then
AC_RUN_IFELSE(AC_LANG_PROGRAM([[
AC_INCLUDES_DEFAULT]],
[[int ret = 1;
__asm__ __volatile__ ($assembly);
return ret;]]),
[asm_result="yes"], [asm_result="no"],
[asm_result="unknown"])
else
assembly="test skipped - assuming no"
fi
[asm_result="yes"], [asm_result="no"],
[asm_result="unknown"])
else
assembly="test skipped - assuming no"
fi
;;
esac
# if we're cross compiling, just try to compile and figure good enough
if test "$asm_result" = "unknown" ; then
AC_LINK_IFELSE(AC_LANG_PROGRAM([[