summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2015-12-21 17:43:03 (GMT)
committerZachary Ware <zachary.ware@gmail.com>2015-12-21 17:43:03 (GMT)
commit6ed42ea08b3a961944e94f1dd941ffabc7657065 (patch)
treeea4e66e81398c9f47d2c7c86f533bac290bb6aa4
parenta3c22424619b51e8598161beeb597d8d7ac4e1c2 (diff)
downloadcpython-6ed42ea08b3a961944e94f1dd941ffabc7657065.zip
cpython-6ed42ea08b3a961944e94f1dd941ffabc7657065.tar.gz
cpython-6ed42ea08b3a961944e94f1dd941ffabc7657065.tar.bz2
Issue #25827: Add support for ICC to configure
-rw-r--r--.gitignore1
-rw-r--r--.hgignore1
-rw-r--r--Makefile.pre.in1
-rw-r--r--Misc/NEWS3
-rwxr-xr-xconfigure44
-rw-r--r--configure.ac29
6 files changed, 79 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 2b87e93..fb08f55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
*.gc??
*.profclang?
*.profraw
+*.dyn
Doc/build/
Doc/tools/docutils/
Doc/tools/jinja2/
diff --git a/.hgignore b/.hgignore
index 007aa7b..a9caf72 100644
--- a/.hgignore
+++ b/.hgignore
@@ -48,6 +48,7 @@ libpython*.so*
*.gc??
*.profclang?
*.profraw
+*.dyn
Lib/distutils/command/*.pdb
Lib/lib2to3/*.pickle
Lib/test/data/*
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 9404f5f..b495ac9 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -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) \
diff --git a/Misc/NEWS b/Misc/NEWS
index 315ebf0..28bf80f 100644
--- 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
diff --git a/configure b/configure
index 7dab897..3309252 100755
--- 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
diff --git a/configure.ac b/configure.ac
index decf0ec..cd6a9bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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