From: wolf Date: Mon, 9 Dec 2002 15:35:12 +0000 (+0000) Subject: Support icc7. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bb93816d550210b5c1749509bdaf3c6b25b8e1c;p=dealii-svn.git Support icc7. git-svn-id: https://svn.dealii.org/trunk@6805 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/aclocal.m4 b/deal.II/aclocal.m4 index e0b45599cf..97af2fc869 100644 --- a/deal.II/aclocal.m4 +++ b/deal.II/aclocal.m4 @@ -100,8 +100,22 @@ AC_DEFUN(DEAL_II_DETERMINE_CXX_BRAND, dnl is_intel_icc2="`($CXX -help 2>&1) | grep 'Intel(R) C++ Compiler'`" is_intel_icc="$is_intel_icc1$is_intel_icc2" if test "x$is_intel_icc" != "x" ; then - AC_MSG_RESULT(C++ compiler is Intel ICC) - GXX_VERSION=intel_icc + version5="`echo $is_intel_icc | grep 'Version 5'`" + version6="`echo $is_intel_icc | grep 'Version 6'`" + version7="`echo $is_intel_icc | grep 'Version 7'`" + if test "x$version5" != "x" ; then + AC_MSG_RESULT(C++ compiler is Intel ICC 5) + GXX_VERSION=intel_icc5 + else if test "x$version6" != "x" ; then + AC_MSG_RESULT(C++ compiler is Intel ICC 6) + GXX_VERSION=intel_icc6 + else if test "x$version7" != "x" ; then + AC_MSG_RESULT(C++ compiler is Intel ICC 7) + GXX_VERSION=intel_icc7 + else + AC_MSG_RESULT(C++ compiler is Intel ICC) + GXX_VERSION=intel_icc + fi fi fi else dnl Intel's ECC C++ compiler for the Itanium? @@ -291,7 +305,7 @@ AC_DEFUN(DEAL_II_SET_CXX_FLAGS, dnl LDFLAGSPIC="-KPIC" ;; - intel_icc) + intel_icc*) dnl Disable some compiler warnings, as they often are wrong on dnl our code: dnl #175: `subscript out of range' (doesn't take into account that @@ -303,16 +317,26 @@ AC_DEFUN(DEAL_II_SET_CXX_FLAGS, dnl dnl #525: `type "DataOutBase::DataOutBase" is an inaccessible type dnl (allowed for compatibility)' (I don't understand what the dnl compiler means) - dnl - dnl Note: we would really like to use -ansi -Xc, since that - dnl is _very_ picky about standard C++, and is thus very efficient - dnl in detecting slight standard violations, but these flags are - dnl also very efficient in crashing the compiler (it generates a - dnl segfault) CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info" - CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424" + CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424 -opt_report_levelmin" CXXFLAGSPIC="-KPIC" LDFLAGSPIC="-KPIC -shared" + + + dnl We would really like to use -ansi -Xc, since that + dnl is _very_ picky about standard C++, and is thus very efficient + dnl in detecting slight standard violations, but these flags are + dnl also very efficient in crashing the compiler (it generates a + dnl segfault), at least with versions prior to 7.0. So only + dnl use these flags with versions we know are safe + dnl + dnl Second thing: icc7 allows using alias information for + dnl optimization. Use this. + if test "x$GXX_VERSION" != "xintel_icc5" -a \ + "x$GXX_VERSION" != "xintel_icc6" ; then + CXXFLAGSG="$CXXFLAGSG -Xc -ansi" + CXXFLAGSO="$CXXFLAGSO -ansi_alias" + fi ;; intel_ecc) @@ -857,7 +881,7 @@ AC_DEFUN(DEAL_II_SET_MULTITHREADING_FLAGS, dnl CXXFLAGSO="$CXXFLAGSO -pthread" ;; - intel_icc) + intel_icc*) CXXFLAGSG="$CXXFLAGSG" CXXFLAGSO="$CXXFLAGSO -parallel" ;; diff --git a/deal.II/configure b/deal.II/configure index 4b3fa90f24..79722e08ff 100755 --- a/deal.II/configure +++ b/deal.II/configure @@ -2675,9 +2675,26 @@ echo "${ECHO_T}C++ compiler is MIPSpro C++ compiler" >&6 is_intel_icc2="`($CXX -help 2>&1) | grep 'Intel(R) C++ Compiler'`" is_intel_icc="$is_intel_icc1$is_intel_icc2" if test "x$is_intel_icc" != "x" ; then - echo "$as_me:$LINENO: result: C++ compiler is Intel ICC" >&5 + version5="`echo $is_intel_icc | grep 'Version 5'`" + version6="`echo $is_intel_icc | grep 'Version 6'`" + version7="`echo $is_intel_icc | grep 'Version 7'`" + if test "x$version5" != "x" ; then + echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 5" >&5 +echo "${ECHO_T}C++ compiler is Intel ICC 5" >&6 + GXX_VERSION=intel_icc5 + else if test "x$version6" != "x" ; then + echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 6" >&5 +echo "${ECHO_T}C++ compiler is Intel ICC 6" >&6 + GXX_VERSION=intel_icc6 + else if test "x$version7" != "x" ; then + echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 7" >&5 +echo "${ECHO_T}C++ compiler is Intel ICC 7" >&6 + GXX_VERSION=intel_icc7 + else + echo "$as_me:$LINENO: result: C++ compiler is Intel ICC" >&5 echo "${ECHO_T}C++ compiler is Intel ICC" >&6 - GXX_VERSION=intel_icc + GXX_VERSION=intel_icc + fi fi fi else is_intel_ecc="`($CXX -V 2>&1) | grep 'Intel(R) C++ Itanium(TM) Compiler'`" @@ -2875,11 +2892,18 @@ rm -f conftest.$ac_objext conftest.$ac_ext LDFLAGSPIC="-KPIC" ;; - intel_icc) - CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info" - CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424" + intel_icc*) + CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info" + CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424 -opt_report_levelmin" CXXFLAGSPIC="-KPIC" LDFLAGSPIC="-KPIC -shared" + + + if test "x$GXX_VERSION" != "xintel_icc5" -a \ + "x$GXX_VERSION" != "xintel_icc6" ; then + CXXFLAGSG="$CXXFLAGSG -Xc -ansi" + CXXFLAGSO="$CXXFLAGSO -ansi_alias" + fi ;; intel_ecc) @@ -3228,7 +3252,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext CXXFLAGSO="$CXXFLAGSO -pthread" ;; - intel_icc) + intel_icc*) CXXFLAGSG="$CXXFLAGSG" CXXFLAGSO="$CXXFLAGSO -parallel" ;; diff --git a/deal.II/doc/development/makefiles.1.html b/deal.II/doc/development/makefiles.1.html index d34fd92f7d..081388bc2c 100644 --- a/deal.II/doc/development/makefiles.1.html +++ b/deal.II/doc/development/makefiles.1.html @@ -66,7 +66,8 @@ gcc2.97, gcc3.0, ibm_xlc, MIPSpro, sun_workshop, sun_forte, - intel_icc, compaq_cxx. Not all of + intel_icc5, intel_icc6, + intel_icc7, compaq_cxx. Not all of these compilers are actually supported (see the ReadMe file for a list of supported compilers and platforms), it is only a list of diff --git a/deal.II/doc/news/2002/c-3-4.html b/deal.II/doc/news/2002/c-3-4.html index 213c255096..e8e1481d78 100644 --- a/deal.II/doc/news/2002/c-3-4.html +++ b/deal.II/doc/news/2002/c-3-4.html @@ -33,6 +33,22 @@ contributor's names are abbreviated by WB (Wolfgang Bangerth), GK

General

    +
  1. + New: deal.II can be compiled with version 7.0 of + Intel's icc compiler, which was recently released. Since this compiler + finally supports the very restrictive flags -Xc -ansi that + check for close conformance with the C++ standard, we use them (previous + versions of icc would crash when these two flags are given). This + requires that we distinguish between these compiler versions, and the + corresponding Makefile variable GXX-VERSION now no longer + holds the non-versioned string intel_icc when icc is + detected, but rather either intel_icc5, + intel_icc6, or intel_icc7, depending on what + version of the compiler was detected. +
    + (WB 2002/12/05) +

    +
  2. Changed: Previously, we just set the preprocessor variable DEAL_II_USE_MT, when --with-multithreading was diff --git a/deal.II/doc/news/news.html b/deal.II/doc/news/news.html index a500761e5c..41bc84fbf5 100644 --- a/deal.II/doc/news/news.html +++ b/deal.II/doc/news/news.html @@ -47,6 +47,14 @@

    +
    + 2002/12/05: Intel ICC 7.0 compiler supported +
    +
    + deal.II now also supports compilation by the recently released + Intel's icc 7.0 compiler. +
    +
    2002/11/27: Modified Incomplete Cholesky decomposition