container release: clang r319946

* clang r319946: includes sanitizer headers, llvm-symbolizer and fuzzer
* add tests to ensure all sanitizer headers exist
* also update the sha256 of python-runtime image to include the latest
changes

Tested:
* Tested building locally with
  `container/debian8-clang-fully-loaded/build.sh -l`
* Tested with Google Cloud Container Builder
  `container/debian8-clang-fully-loaded/build.sh -p my-project -c
  my-image -t test -a`

Change-Id: Icf941907782e9d5adde5b13ea59b2f453d9bed0f
diff --git a/WORKSPACE b/WORKSPACE
index fbcb6cd..467d211 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -216,20 +216,6 @@
 # Clang
 http_file(
     name = "clang_release",
-    sha256 = "8b29b525eb928cac53f5a56a9fe63924467deec6eb75844b947c2d59cc20cd5c",
-    urls = ["https://storage.googleapis.com/clang-builds-stable/clang-debian8/clang_r318288.tar.gz"],
-)
-
-# LLVM's compiler-rt, used to get sanitizer headers
-# Pinned to CL right after r318288
-# TODO(yiyu): make changing this pin part of the container release process
-# TODO(ngiraldo): remove this once the clang-debian8 gcs package comes with the headers pre-installed
-new_http_archive(
-    name = "compiler_rt",
-    urls = [
-        "https://github.com/llvm-mirror/compiler-rt/archive/0066b15e48e7b40e43051c9241760e7066582a96.tar.gz",
-    ],
-    sha256 = "a31b513c7b81168e88f530ace58bec53766870c22f949d2a91f767a291d682a9",
-    strip_prefix = "compiler-rt-0066b15e48e7b40e43051c9241760e7066582a96",
-    build_file = "//third_party/compiler_rt:compiler_rt.BUILD",
+    sha256 = "61699cafb7d8542f30b39eda9fc43b23f13ecbac1d349976374f7555659c2d2f",
+    urls = ["https://storage.googleapis.com/clang-builds-stable/clang-debian8/clang_r319946.tar.gz"],
 )
diff --git a/container/debian8-clang-fully-loaded/test.yaml b/container/debian8-clang-fully-loaded/test.yaml
index f657921..5d8c512 100644
--- a/container/debian8-clang-fully-loaded/test.yaml
+++ b/container/debian8-clang-fully-loaded/test.yaml
@@ -28,3 +28,51 @@
   isDirectory: false
   path: '/usr/local/go/bin/go'
   shouldExist: true
+- name: 'sanitizer'
+  isDirectory: true
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer'
+  shouldExist: true
+- name: 'sanitizer-allocator'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/allocator_interface.h'
+  shouldExist: true
+- name: 'sanitizer-asan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/asan_interface.h'
+  shouldExist: true
+- name: 'sanitizer-common_defs'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/common_interface_defs.h'
+  shouldExist: true
+- name: 'sanitizer-coverage'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/coverage_interface.h'
+  shouldExist: true
+- name: 'sanitizer-dfsan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/dfsan_interface.h'
+  shouldExist: true
+- name: 'sanitizer-esan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/esan_interface.h'
+  shouldExist: true
+- name: 'sanitizer-linux_syscall_hooks'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/linux_syscall_hooks.h'
+  shouldExist: true
+- name: 'sanitizer-lsan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/lsan_interface.h'
+  shouldExist: true
+- name: 'sanitizer-msan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/msan_interface.h'
+  shouldExist: true
+- name: 'sanitizer-tsan_atomic'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/tsan_interface_atomic.h'
+  shouldExist: true
+- name: 'sanitizer-tsan'
+  isDirectory: false
+  path: '/usr/local/lib/clang/6.0.0/include/sanitizer/tsan_interface.h'
+  shouldExist: true
diff --git a/third_party/clang/BUILD b/third_party/clang/BUILD
index c81856c..458e949 100644
--- a/third_party/clang/BUILD
+++ b/third_party/clang/BUILD
@@ -32,6 +32,5 @@
     tags = ["manual"],
     deps = [
       "@clang_release//file",
-      "@compiler_rt//:sanitizers"
     ],
 )
diff --git a/third_party/compiler_rt/BUILD b/third_party/compiler_rt/BUILD
deleted file mode 100644
index 3f995dc..0000000
--- a/third_party/compiler_rt/BUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
diff --git a/third_party/compiler_rt/compiler_rt.BUILD b/third_party/compiler_rt/compiler_rt.BUILD
deleted file mode 100644
index b21eecd..0000000
--- a/third_party/compiler_rt/compiler_rt.BUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-pkg_tar(
-    name = "sanitizers",
-    srcs = glob(["include/sanitizer/*"]),
-    package_dir = "/lib/clang/6.0.0",
-    strip_prefix = ".",
-    tags = ["manual"],
-)
diff --git a/third_party/python/BUILD b/third_party/python/BUILD
index cc53abb..df812e6 100644
--- a/third_party/python/BUILD
+++ b/third_party/python/BUILD
@@ -38,7 +38,7 @@
 # https://github.com/GoogleCloudPlatform/python-runtime/tree/master/python-interpreter-builder
 container_file_export(
     name = "python3",
-    image = "l.gcr.io/google/python@sha256:49f0264ae8ea6993c03773aa6cc7b7bb14f977d7e67780974375cbd74b376144",
+    image = "l.gcr.io/google/python@sha256:8c6f86e4cec33f483aaf4155658da424fe37d3e03d3c55a823790eb56a3a8f1a",
     src_path = "/opt/python3.6",
     tags = ["manual"],
 )