Ensure that compilers that pretend to be gcc don't actually get the
gcc-specific compiler flags (because they don't work -- @#$%@#$%!!!) This commit was SVN r4092.
Этот коммит содержится в:
родитель
4f0adc3ab2
Коммит
46d7f9a7ed
@ -39,6 +39,32 @@ AC_DEFINE_UNQUOTED(OMPI_CC, "$CC", [OMPI underlying C compiler])
|
||||
|
||||
CPPFLAGS="$CPPFLAGS -DOMPI_BUILDING=1"
|
||||
|
||||
# Check for compilers that impersonate gcc
|
||||
|
||||
AC_MSG_CHECKING([for compilers that impersonate gcc])
|
||||
msg=
|
||||
TRULY_GCC=$GCC
|
||||
if test "$GCC" = "yes"; then
|
||||
AC_TRY_COMPILE([], [
|
||||
int i = 3;
|
||||
#if __INTEL_COMPILER
|
||||
#error Yes, I am lying about being gcc.
|
||||
#endif
|
||||
], [], [msg=intel])
|
||||
|
||||
# If we made it through unscathed, then it really is gcc
|
||||
if test -z "$msg"; then
|
||||
TRULY_GCC=yes
|
||||
else
|
||||
TRULY_GCC=no
|
||||
fi
|
||||
else
|
||||
# We never thought that this was gcc to begin with
|
||||
msg=not applicable
|
||||
TRULY_GCC=no
|
||||
fi
|
||||
AC_MSG_RESULT([$msg])
|
||||
|
||||
# Do we want debugging?
|
||||
|
||||
if test "$WANT_DEBUG" = "1"; then
|
||||
@ -47,8 +73,11 @@ if test "$WANT_DEBUG" = "1"; then
|
||||
AC_MSG_WARN([-g has been added to CFLAGS (--enable-debug)])
|
||||
fi
|
||||
|
||||
# These flags are generally gcc-specific; even the gcc-impersonating
|
||||
# compilers won't accept them.
|
||||
|
||||
OMPI_CFLAGS_BEFORE_PICKY="$CFLAGS"
|
||||
if test "$GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
if test "$TRULY_GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
add="-Wall -Wundef -Wno-long-long -Wsign-compare"
|
||||
add="$add -Wmissing-prototypes -Wstrict-prototypes"
|
||||
add="$add -Wcomment -pedantic"
|
||||
@ -68,7 +97,7 @@ if test "$GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
fi
|
||||
|
||||
# See if this version of gcc allows -finline-functions and/or
|
||||
# -fno-strict-aliasing
|
||||
# -fno-strict-aliasing. Even check the gcc-impersonating compilers.
|
||||
if test "$GCC" = "yes"; then
|
||||
CFLAGS_orig="$CFLAGS"
|
||||
|
||||
@ -124,6 +153,9 @@ fi
|
||||
# prohibitive). If we're using anything else, be conservative and
|
||||
# just use -O.
|
||||
|
||||
# Note: gcc-imperonating compilers accept -O3, so there's no need for
|
||||
# $TRULY_GCC here.
|
||||
|
||||
if test "$GCC" = yes; then
|
||||
OPTFLAGS="-O3"
|
||||
else
|
||||
|
@ -27,6 +27,32 @@ BASECXX="`basename $CXX`"
|
||||
CXXFLAGS="$ompi_cxxflags_save"
|
||||
AC_DEFINE_UNQUOTED(OMPI_CXX, "$CXX", [OMPI underlying C++ compiler])
|
||||
|
||||
# Check for compilers that impersonate g++
|
||||
|
||||
AC_MSG_CHECKING([for compilers that impersonate g++])
|
||||
msg=
|
||||
TRULY_GXX=$GXX
|
||||
if test "$GXX" = "yes"; then
|
||||
AC_TRY_COMPILE([], [
|
||||
int i = 3;
|
||||
#if __INTEL_COMPILER
|
||||
#error Yes, I am lying about being g++.
|
||||
#endif
|
||||
], [], [msg=intel])
|
||||
|
||||
# If we made it through unscathed, then it really is g++
|
||||
if test -z "$msg"; then
|
||||
TRULY_GXX=yes
|
||||
else
|
||||
TRULY_GXX=no
|
||||
fi
|
||||
else
|
||||
# We never thought that this was GXX to begin with
|
||||
msg=not applicable
|
||||
TRULY_GXX=no
|
||||
fi
|
||||
AC_MSG_RESULT([$msg])
|
||||
|
||||
# Do we want debugging?
|
||||
|
||||
if test "$WANT_DEBUG" = "1"; then
|
||||
@ -35,8 +61,11 @@ if test "$WANT_DEBUG" = "1"; then
|
||||
AC_MSG_WARN([-g has been added to CXXFLAGS (--enable-debug)])
|
||||
fi
|
||||
|
||||
# These flags are generally g++-specific; even the g++-impersonating
|
||||
# compilers won't accept them.
|
||||
|
||||
OMPI_CXXFLAGS_BEFORE_PICKY="$CXXFLAGS"
|
||||
if test "$GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
if test "$TRULY_GXX" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
add="-g -Wall -Wundef -Wno-long-long"
|
||||
|
||||
# see if -Wno-long-double works...
|
||||
@ -53,8 +82,9 @@ if test "$GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
||||
unset add
|
||||
fi
|
||||
|
||||
# See if this version of gcc allows -finline-functions
|
||||
if test "$GCC" = "yes"; then
|
||||
# See if this version of g++ allows -finline-functions
|
||||
|
||||
if test "$GXX" = "yes"; then
|
||||
CXXFLAGS_orig="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -finline-functions"
|
||||
add=
|
||||
@ -122,6 +152,9 @@ esac
|
||||
|
||||
# Same rationale for g++ as with gcc in OMPI_SETUP_CC.
|
||||
|
||||
# Note: gcc-imperonating compilers accept -O3, so there's no need for
|
||||
# $TRULY_GCC here.
|
||||
|
||||
if test "$GXX" = yes; then
|
||||
OPTFLAGS="-O3"
|
||||
else
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user