configure.ac: don't call AC_C_INLINE or AC_C_RESTRICT
OMPI *requires* a C99 compiler, so we don't need the AC_C_INLINE or AC_C_RESTRICT tests anymore (because the C99 compiler guarantees to support them). Indeed, in some cases (see open-mpi/ompi#491), AC_C_INLINE gets the wrong answer and defines `inline` to be empty, which screws up some systems (e.g., OS X with clang). As an added bonus, we get to get rid of a bunch of gcc 2.96-specific code (!) in configure.ac.
Этот коммит содержится в:
родитель
113c890ccf
Коммит
1029dea72b
35
configure.ac
35
configure.ac
@ -481,43 +481,8 @@ OPAL_VAR_SCOPE_POP
|
|||||||
# Check for other compiler characteristics
|
# Check for other compiler characteristics
|
||||||
#
|
#
|
||||||
|
|
||||||
OPAL_VAR_SCOPE_PUSH([CFLAGS_save])
|
|
||||||
if test "$GCC" = "yes"; then
|
|
||||||
|
|
||||||
# gcc 2.96 will emit oodles of warnings if you use "inline" with
|
|
||||||
# -pedantic (which we do in developer builds). However,
|
|
||||||
# "__inline__" is ok. So we have to force gcc to select the
|
|
||||||
# right one. If you use -pedantic, the AC_C_INLINE test will fail
|
|
||||||
# (because it names a function foo() -- without the (void)). So
|
|
||||||
# we turn off all the picky flags, turn on -ansi mode (which is
|
|
||||||
# implied by -pedantic), and set warnings to be errors. Hence,
|
|
||||||
# this does the following (for 2.96):
|
|
||||||
#
|
|
||||||
# - causes the check for "inline" to emit a warning, which then
|
|
||||||
# fails
|
|
||||||
# - checks for __inline__, which then emits no error, and works
|
|
||||||
#
|
|
||||||
# This also works nicely for gcc 3.x because "inline" will work on
|
|
||||||
# the first check, and all is fine. :-)
|
|
||||||
|
|
||||||
CFLAGS_save=$CFLAGS
|
|
||||||
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY -Werror -ansi"
|
|
||||||
fi
|
|
||||||
AC_C_INLINE
|
|
||||||
# Microsoft compilers support 2 versions of restrict. One for functions, and
|
|
||||||
# one for variables. The problem is that they don't have an equivalent
|
|
||||||
# syntax, and the autoconf restrict detection is unable to detect them
|
|
||||||
# correctly. It detect the restrict keyword as __restrict which break the
|
|
||||||
# rules for function syntax which is declspec(restrict).
|
|
||||||
if test "x$opal_cv_c_compiler_vendor" != "xmicrosoft"; then
|
|
||||||
AC_C_RESTRICT
|
|
||||||
fi
|
|
||||||
OPAL_C_WEAK_SYMBOLS
|
OPAL_C_WEAK_SYMBOLS
|
||||||
OPAL_C_MACRO_WEAK_SYMBOLS
|
OPAL_C_MACRO_WEAK_SYMBOLS
|
||||||
if test "$GCC" = "yes"; then
|
|
||||||
CFLAGS=$CFLAGS_save
|
|
||||||
fi
|
|
||||||
OPAL_VAR_SCOPE_POP
|
|
||||||
|
|
||||||
if test "x$CC" = "xicc"; then
|
if test "x$CC" = "xicc"; then
|
||||||
OPAL_CHECK_ICC_VARARGS
|
OPAL_CHECK_ICC_VARARGS
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user