aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/gpus
diff options
context:
space:
mode:
authorGravatar Ilya Biryukov <ibiryukov@google.com>2018-03-22 05:33:42 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-03-22 05:36:18 -0700
commit9e651e4571f7b7c2d32bdafe43cc4ced9bb0c750 (patch)
tree969e4652bf4774e474ac8449df53a14761f156ab /third_party/gpus
parentf9ccb89134d89469ae962bba832e78d1f116b96b (diff)
Allow to download clang and use clang for CPU builds.
Previously we only allowed to download clang when doing GPU builds. The added skylark files use bazel's autoconf scripts, which were only added in 0.10.0. To provide nice error message for older versions of bazel (i.e. 'version is less than 0.10' vs 'can't load @bazel_tools/cpp/...'), we move the bazel version check into WORKSPACE file from workspace.bzl. PiperOrigin-RevId: 190050798
Diffstat (limited to 'third_party/gpus')
-rw-r--r--third_party/gpus/cuda_configure.bzl2
-rw-r--r--third_party/gpus/download_clang.bzl54
2 files changed, 1 insertions, 55 deletions
diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl
index 6c9c128db6..ede7e31897 100644
--- a/third_party/gpus/cuda_configure.bzl
+++ b/third_party/gpus/cuda_configure.bzl
@@ -96,7 +96,7 @@ NVVM_LIBDEVICE_PATHS = [
"share/cuda/",
]
-load(":download_clang.bzl", "download_clang")
+load("//third_party/clang_toolchain:download_clang.bzl", "download_clang")
# TODO(dzc): Once these functions have been factored out of Bazel's
# cc_configure.bzl, load them from @bazel_tools instead.
diff --git a/third_party/gpus/download_clang.bzl b/third_party/gpus/download_clang.bzl
deleted file mode 100644
index 54d383d7d7..0000000000
--- a/third_party/gpus/download_clang.bzl
+++ /dev/null
@@ -1,54 +0,0 @@
-""" Helpers to download a recent clang release."""
-
-def _get_platform_folder(os_name):
- os_name = os_name.lower()
- if os_name.startswith('windows'):
- return 'Win'
- if os_name.startswith('mac os'):
- return 'Mac'
- if not os_name.startswith('linux'):
- fail('Unknown platform')
- return 'Linux_x64'
-
-def _download_chromium_clang(repo_ctx, platform_folder, package_version, sha256,
- out_folder):
- cds_url = 'https://commondatastorage.googleapis.com/chromium-browser-clang'
- cds_file = 'clang-%s.tgz' % package_version
- cds_full_url = '{0}/{1}/{2}'.format(cds_url, platform_folder, cds_file)
- repo_ctx.download_and_extract(cds_full_url, output=out_folder, sha256=sha256)
-
-def download_clang(repo_ctx, out_folder):
- """ Download a fresh clang release and put it into out_folder.
-
- Clang itself will be located in 'out_folder/bin/clang'.
- We currently download one of the latest releases of clang by the
- Chromium project (see
- https://chromium.googlesource.com/chromium/src/+/master/docs/clang.md).
-
- Args:
- repo_ctx: An instance of repository_context object.
- out_folder: A folder to extract the compiler into.
- """
- # TODO(ibiryukov): we currently download and extract some extra tools in the
- # clang release (e.g., sanitizers). We should probably remove the ones
- # we don't need and document the ones we want provide in addition to clang.
-
- # Latest CLANG_REVISION and CLANG_SUB_REVISION of the Chromiums's release
- # can be found in https://chromium.googlesource.com/chromium/src/tools/clang/+/master/scripts/update.py
- CLANG_REVISION = '321529'
- CLANG_SUB_REVISION = 2
-
- package_version = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
-
- checksums = {
- 'Linux_x64':
- '76d4eb1ad011e3127c4a9de9b9f5d4ac624b5a9395c4d7395c9e0a487b13daf6',
- 'Mac':
- '4b2a7a65ac1ee892b318c723eec8771f514bb306f346aa8216bb0006f19d87b7',
- 'Win':
- 'eba51bb8f84af41a85903113666bd21c22709010c39c4cb19dc20cf1ed14581b',
- }
-
- platform_folder = _get_platform_folder(repo_ctx.os.name)
- _download_chromium_clang(repo_ctx, platform_folder, package_version,
- checksums[platform_folder], out_folder)