Added an option to download a fresh release of clang for doing cuda_clang builds.
Tested only on Linux, but should also work for Mac.
No support for Windows is available yet.
PiperOrigin-RevId: 179910980
diff --git a/configure.py b/configure.py
index 3365595..073bcca 100644
--- a/configure.py
+++ b/configure.py
@@ -518,6 +518,21 @@
no_reply=no_reply)
+def set_tf_download_clang(environ_cp):
+ """Set TF_DOWNLOAD_CLANG action_env."""
+ question = 'Do you want to download a fresh release of clang? (Experimental)'
+ yes_reply = 'Clang will be downloaded and used to compile tensorflow.'
+ no_reply = 'Clang will not be downloaded.'
+ set_action_env_var(
+ environ_cp,
+ 'TF_DOWNLOAD_CLANG',
+ None,
+ False,
+ question=question,
+ yes_reply=yes_reply,
+ no_reply=no_reply)
+
+
def get_from_env_or_user_or_default(environ_cp, var_name, ask_for_var,
var_default):
"""Get var_name either from env, or user or default.
@@ -1301,8 +1316,19 @@
set_tf_cuda_clang(environ_cp)
if environ_cp.get('TF_CUDA_CLANG') == '1':
- # Set up which clang we should use as the cuda / host compiler.
- set_clang_cuda_compiler_path(environ_cp)
+ if not is_windows():
+ # Ask if we want to download clang release while building.
+ set_tf_download_clang(environ_cp)
+ else:
+ # We use bazel's generated crosstool on Windows and there is no
+ # way to provide downloaded toolchain for that yet.
+ # TODO(ibiryukov): Investigate using clang as a cuda compiler on
+ # Windows.
+ environ_cp['TF_DOWNLOAD_CLANG'] = '0'
+
+ if environ_cp.get('TF_DOWNLOAD_CLANG') != '1':
+ # Set up which clang we should use as the cuda / host compiler.
+ set_clang_cuda_compiler_path(environ_cp)
else:
# Set up which gcc nvcc should use as the host compiler
# No need to set this on Windows