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.
Этот коммит содержится в:
родитель
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([[
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user