]> granicus.if.org Git - python/commitdiff
Issue #25827: Add support for ICC to configure
authorZachary Ware <zachary.ware@gmail.com>
Mon, 21 Dec 2015 17:43:03 +0000 (11:43 -0600)
committerZachary Ware <zachary.ware@gmail.com>
Mon, 21 Dec 2015 17:43:03 +0000 (11:43 -0600)
.gitignore
.hgignore
Makefile.pre.in
Misc/NEWS
configure
configure.ac

index 2b87e9386d2443223aa7073bf273c056ae69167c..fb08f55757d46c36f1101f3400d1aa9fbd89b252 100644 (file)
@@ -9,6 +9,7 @@
 *.gc??
 *.profclang?
 *.profraw
+*.dyn
 Doc/build/
 Doc/tools/docutils/
 Doc/tools/jinja2/
index 007aa7b64ff368c0e3e9d6cea498601ba1b2a168..a9caf72a72a910bab31df7313136a3b12711c945 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -48,6 +48,7 @@ libpython*.so*
 *.gc??
 *.profclang?
 *.profraw
+*.dyn
 Lib/distutils/command/*.pdb
 Lib/lib2to3/*.pickle
 Lib/test/data/*
index 9404f5fe4412428f75b74d8551e355bf39337f14..b495ac90bdc10a8fa083ad7cf2733ee7a946ed22 100644 (file)
@@ -1354,6 +1354,7 @@ clean: pycremoval
 profile-removal:
        find . -name '*.gc??' -exec rm -f {} ';'
        find . -name '*.profclang?' -exec rm -f {} ';'
+       find . -name '*.dyn' -exec rm -f {} ';'
 
 clobber: clean profile-removal
        -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
index 315ebf0b9d16df5e59ee0d2609360985dfffd3b1..28bf80f1f772be8c3d7e86d3dd0d2e71fb7914e4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -64,6 +64,9 @@ Tests
 Build
 -----
 
+- Issue #25827: Add support for building with ICC to ``configure``, including
+  a new ``--with-icc`` flag.
+
 - Issue #25696: Fix installation of Python on UNIX with make -j9.
 
 - Issue #25798: Update OS X 10.5+ 32-bit-only installer to build
index 7dab8975f1a56de969ebcfe0c29779a4b16762ad..33092525ba541dd89faffff46bbf7fddaa27f818 100755 (executable)
--- a/configure
+++ b/configure
@@ -789,6 +789,7 @@ with_universal_archs
 with_framework_name
 enable_framework
 with_gcc
+with_icc
 with_cxx_main
 with_suffix
 enable_shared
@@ -1469,6 +1470,7 @@ Optional Packages:
                           specify an alternate name of the framework built
                           with --enable-framework
   --without-gcc           never use gcc
+  --with-icc              build with icc
   --with-cxx-main=<compiler>
                           compile main() and link python executable with C++
                           compiler
@@ -3480,6 +3482,29 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $without_gcc" >&5
 $as_echo "$without_gcc" >&6; }
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-icc" >&5
+$as_echo_n "checking for --with-icc... " >&6; }
+
+# Check whether --with-icc was given.
+if test "${with_icc+set}" = set; then :
+  withval=$with_icc;
+       case $withval in
+       no)     CC=${CC:-cc}
+               with_icc=no;;
+       yes)    CC=icc
+               CXX=icpc
+               with_icc=yes;;
+       *)      CC=$withval
+               with_icc=$withval;;
+       esac
+else
+
+       with_icc=no
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_icc" >&5
+$as_echo "$with_icc" >&6; }
+
 # If the user switches compilers, we can't believe the cache
 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
 then
@@ -6188,6 +6213,13 @@ $as_echo "$CC" >&6; }
     ;;
 esac
 
+# ICC needs -fp-model strict or floats behave badly
+case "$CC" in
+*icc*)
+    BASECFLAGS="$BASECFLAGS -fp-model strict"
+    ;;
+esac
+
 if test "$Py_DEBUG" = 'true'; then
   :
 else
@@ -6334,6 +6366,12 @@ fi
 
 
 # Enable PGO flags.
+
+
+
+
+
+
 # Extract the first word of "llvm-profdata", so it can be a program name with args.
 set dummy llvm-profdata; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -6405,6 +6443,12 @@ case $CC in
         ;;
     esac
     ;;
+  *icc*)
+    PGO_PROF_GEN_FLAG="-prof-gen"
+    PGO_PROF_USE_FLAG="-prof-use"
+    LLVM_PROF_MERGER="true"
+    LLVM_PROF_FILE=""
+    ;;
 esac
 
 
index decf0ec7424bc1fac0040e1d7e837a32823198a2..cd6a9bcaac248bd3d42c773e8aae59c62dda8253 100644 (file)
@@ -573,6 +573,22 @@ AC_ARG_WITH(gcc,
        esac])
 AC_MSG_RESULT($without_gcc)
 
+AC_MSG_CHECKING(for --with-icc)
+AC_ARG_WITH(icc,
+            AS_HELP_STRING([--with-icc], [build with icc]),
+[
+       case $withval in
+       no)     CC=${CC:-cc}
+               with_icc=no;;
+       yes)    CC=icc
+               CXX=icpc
+               with_icc=yes;;
+       *)      CC=$withval
+               with_icc=$withval;;
+       esac], [
+       with_icc=no])
+AC_MSG_RESULT($with_icc)
+
 # If the user switches compilers, we can't believe the cache
 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
 then
@@ -1266,6 +1282,13 @@ yes)
     ;;
 esac
 
+# ICC needs -fp-model strict or floats behave badly
+case "$CC" in
+*icc*)
+    BASECFLAGS="$BASECFLAGS -fp-model strict"
+    ;;
+esac
+
 if test "$Py_DEBUG" = 'true'; then
   :
 else
@@ -1394,6 +1417,12 @@ case $CC in
         ;;
     esac
     ;;
+  *icc*)
+    PGO_PROF_GEN_FLAG="-prof-gen"
+    PGO_PROF_USE_FLAG="-prof-use"
+    LLVM_PROF_MERGER="true"
+    LLVM_PROF_FILE=""
+    ;;
 esac