From 96f8397fdc6fd52111cffd97563221eca8d0ce65 Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Sat, 20 Jul 2019 01:34:56 +0000 Subject: [PATCH 01/10] ci: use small image and not generating java configs Signed-off-by: Lizan Zhou --- .bazelrc | 6 +- .bazelversion | 2 +- .circleci/config.yml | 2 +- bazel/repository_locations.bzl | 12 +- .../configs/clang/bazel_0.28.0/java/BUILD | 25 - .../{bazel_0.28.0 => bazel_0.28.1}/cc/BUILD | 3 +- .../cc/armeabi_cc_toolchain_config.bzl | 0 .../cc/cc_toolchain_config.bzl | 0 .../cc/cc_wrapper.sh | 0 .../config/BUILD | 4 +- .../clang_libcxx/bazel_0.28.1/cc/BUILD | 149 ++ .../cc/armeabi_cc_toolchain_config.bzl | 0 .../bazel_0.28.1}/cc/cc_toolchain_config.bzl | 0 .../bazel_0.28.1/cc/cc_wrapper.sh} | 20 +- .../clang_libcxx/bazel_0.28.1/config/BUILD | 53 + .../{bazel_0.28.0 => bazel_0.28.1}/cc/BUILD | 5 +- .../cc/armeabi_cc_toolchain_config.bzl | 82 ++ .../bazel_0.28.1/cc/cc_toolchain_config.bzl | 1202 +++++++++++++++++ .../cc/cc_wrapper.sh | 0 .../config/BUILD | 4 +- bazel/toolchains/configs/versions.bzl | 15 +- bazel/toolchains/rbe_toolchains_config.bzl | 54 +- bazel/toolchains/regenerate.sh | 7 +- 23 files changed, 1553 insertions(+), 92 deletions(-) delete mode 100644 bazel/toolchains/configs/clang/bazel_0.28.0/java/BUILD rename bazel/toolchains/configs/clang/{bazel_0.28.0 => bazel_0.28.1}/cc/BUILD (99%) rename bazel/toolchains/configs/clang/{bazel_0.28.0 => bazel_0.28.1}/cc/armeabi_cc_toolchain_config.bzl (100%) rename bazel/toolchains/configs/clang/{bazel_0.28.0 => bazel_0.28.1}/cc/cc_toolchain_config.bzl (100%) rename bazel/toolchains/configs/clang/{bazel_0.28.0 => bazel_0.28.1}/cc/cc_wrapper.sh (100%) rename bazel/toolchains/configs/clang/{bazel_0.28.0 => bazel_0.28.1}/config/BUILD (89%) create mode 100755 bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/BUILD rename bazel/toolchains/configs/{gcc/bazel_0.28.0 => clang_libcxx/bazel_0.28.1}/cc/armeabi_cc_toolchain_config.bzl (100%) rename bazel/toolchains/configs/{gcc/bazel_0.28.0 => clang_libcxx/bazel_0.28.1}/cc/cc_toolchain_config.bzl (100%) rename bazel/toolchains/configs/{gcc/bazel_0.28.0/java/BUILD => clang_libcxx/bazel_0.28.1/cc/cc_wrapper.sh} (60%) mode change 100644 => 100755 create mode 100644 bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD rename bazel/toolchains/configs/gcc/{bazel_0.28.0 => bazel_0.28.1}/cc/BUILD (98%) create mode 100755 bazel/toolchains/configs/gcc/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl create mode 100755 bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_toolchain_config.bzl rename bazel/toolchains/configs/gcc/{bazel_0.28.0 => bazel_0.28.1}/cc/cc_wrapper.sh (100%) rename bazel/toolchains/configs/gcc/{bazel_0.28.0 => bazel_0.28.1}/config/BUILD (89%) diff --git a/.bazelrc b/.bazelrc index 3a507d5ca130e..a278bbbd7b770 100644 --- a/.bazelrc +++ b/.bazelrc @@ -16,6 +16,8 @@ build --experimental_local_memory_estimate build --host_force_python=PY2 build --action_env=BAZEL_LINKLIBS=-l%:libstdc++.a build --action_env=BAZEL_LINKOPTS=-lm:-static-libgcc +build --host_javabase=@bazel_tools//tools/jdk:remote_jdk +build --javabase=@bazel_tools//tools/jdk:remote_jdk # Basic ASAN/UBSAN that works for gcc build:asan --action_env=BAZEL_LINKLIBS= @@ -83,10 +85,6 @@ build:sizeopt -c opt --copt -Os build --test_env=HEAPCHECK=normal --test_env=PPROF_PATH # Remote execution: https://docs.bazel.build/versions/master/remote-execution.html -build:rbe-toolchain --host_javabase=@rbe_ubuntu_clang//java:jdk -build:rbe-toolchain --javabase=@rbe_ubuntu_clang//java:jdk -build:rbe-toolchain --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 -build:rbe-toolchain --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 build:rbe-toolchain --host_platform=@envoy//bazel/toolchains:rbe_ubuntu_clang_platform build:rbe-toolchain --platforms=@envoy//bazel/toolchains:rbe_ubuntu_clang_platform build:rbe-toolchain --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 diff --git a/.bazelversion b/.bazelversion index 697f087f376ad..48f7a71df4beb 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -0.28.0 +0.28.1 diff --git a/.circleci/config.yml b/.circleci/config.yml index 9a4680614d631..4aa7ecc9a8de9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ executors: description: "A regular build executor based on ubuntu image" docker: # NOTE: Update bazel/toolchains/rbe_toolchains_config.bzl with sha256 digest to match the image here. - - image: envoyproxy/envoy-build:8246167b9d238797cbc6c03dccc9e3921c37617d + - image: envoyproxy/envoy-build:284009009dc2db7bfabf16da826917b57b104243 resource_class: xlarge working_directory: /source diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 1335ae70623b5..ac2d43490d9b4 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -4,12 +4,12 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.17.0/bazel-gazelle-0.17.0.tar.gz"], ), bazel_toolchains = dict( - sha256 = "68e7678473090542e679ce7e6aa8a3ba5669577dede2b404f9865d556bd99f10", - strip_prefix = "bazel-toolchains-0.28.0", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.0.tar.gz", - "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.0.tar.gz", - ], + sha256 = "599cb541afc98c5d2522369db8cbcb98688d3e88b6fdf63e1e5a501bd9493089", + strip_prefix = "bazel-toolchains-f7a67715a5c368655a206f611870e836434cdc2a", + # 2019-07-24 + # Need https://github.com/bazelbuild/bazel-toolchains/pull/644 to select correct toolchain from same image + # TODO(lizan): Update to release when new version is released. + urls = ["https://github.com/bazelbuild/bazel-toolchains/archive/f7a67715a5c368655a206f611870e836434cdc2a.tar.gz"], ), boringssl = dict( # Use commits from branch "chromium-stable-with-bazel" diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/java/BUILD b/bazel/toolchains/configs/clang/bazel_0.28.0/java/BUILD deleted file mode 100644 index 7c273a5b0e497..0000000000000 --- a/bazel/toolchains/configs/clang/bazel_0.28.0/java/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2016 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 file is auto-generated by an rbe_autoconfig repository rule -# and should not be modified directly. -# See @bazel_toolchains//rules:rbe_repo.bzl - -package(default_visibility = ["//visibility:public"]) - -java_runtime( - name = "jdk", - srcs = [], - java_home = "/usr/lib/jvm/java-8-openjdk-amd64", -) diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/cc/BUILD b/bazel/toolchains/configs/clang/bazel_0.28.1/cc/BUILD similarity index 99% rename from bazel/toolchains/configs/clang/bazel_0.28.0/cc/BUILD rename to bazel/toolchains/configs/clang/bazel_0.28.1/cc/BUILD index 7de0f2682246f..1726bdef2c05f 100755 --- a/bazel/toolchains/configs/clang/bazel_0.28.0/cc/BUILD +++ b/bazel/toolchains/configs/clang/bazel_0.28.1/cc/BUILD @@ -116,7 +116,8 @@ cc_toolchain_config( "-Wl,-z,relro,-z,now", "-B/usr/lib/llvm-8/bin", "-lm", - "-static-libgcc"], + "-static-libgcc", + "-fuse-ld=lld"], link_libs = ["-l:libstdc++.a"], opt_link_flags = ["-Wl,--gc-sections"], unfiltered_compile_flags = ["-no-canonical-prefixes", diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/cc/armeabi_cc_toolchain_config.bzl b/bazel/toolchains/configs/clang/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl similarity index 100% rename from bazel/toolchains/configs/clang/bazel_0.28.0/cc/armeabi_cc_toolchain_config.bzl rename to bazel/toolchains/configs/clang/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/cc/cc_toolchain_config.bzl b/bazel/toolchains/configs/clang/bazel_0.28.1/cc/cc_toolchain_config.bzl similarity index 100% rename from bazel/toolchains/configs/clang/bazel_0.28.0/cc/cc_toolchain_config.bzl rename to bazel/toolchains/configs/clang/bazel_0.28.1/cc/cc_toolchain_config.bzl diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/cc/cc_wrapper.sh b/bazel/toolchains/configs/clang/bazel_0.28.1/cc/cc_wrapper.sh similarity index 100% rename from bazel/toolchains/configs/clang/bazel_0.28.0/cc/cc_wrapper.sh rename to bazel/toolchains/configs/clang/bazel_0.28.1/cc/cc_wrapper.sh diff --git a/bazel/toolchains/configs/clang/bazel_0.28.0/config/BUILD b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD similarity index 89% rename from bazel/toolchains/configs/clang/bazel_0.28.0/config/BUILD rename to bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD index ac2d4d5f1c55b..1b4e54d67c577 100644 --- a/bazel/toolchains/configs/clang/bazel_0.28.0/config/BUILD +++ b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD @@ -29,7 +29,7 @@ toolchain( "@bazel_tools//platforms:linux", "@bazel_tools//platforms:x86_64", ], - toolchain = "//bazel/toolchains/configs/clang/bazel_0.28.0/cc:cc-compiler-k8", + toolchain = "//bazel/toolchains/configs/clang/bazel_0.28.1/cc:cc-compiler-k8", toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", ) @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/envoy-ci/envoy-build@sha256:9dbe1cba2b3340d49a25a1d286c8d49083ec986a6fead27f487e80ca334f065f" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/BUILD b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/BUILD new file mode 100755 index 0000000000000..dae58f58c97a4 --- /dev/null +++ b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/BUILD @@ -0,0 +1,149 @@ +# Copyright 2016 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 becomes the BUILD file for @local_config_cc// under non-FreeBSD unixes. + +package(default_visibility = ["//visibility:public"]) + +load(":cc_toolchain_config.bzl", "cc_toolchain_config") +load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config") + +licenses(["notice"]) # Apache 2.0 + +cc_library( + name = "malloc", +) + +filegroup( + name = "empty", + srcs = [], +) + +filegroup( + name = "cc_wrapper", + srcs = ["cc_wrapper.sh"], +) + +filegroup( + name = "compiler_deps", + srcs = glob(["extra_tools/**"], allow_empty = True) + [":empty"], +) + +# This is the entry point for --crosstool_top. Toolchains are found +# by lopping off the name of --crosstool_top and searching for +# the "${CPU}" entry in the toolchains attribute. +cc_toolchain_suite( + name = "toolchain", + toolchains = { + "k8|clang": ":cc-compiler-k8", + "k8": ":cc-compiler-k8", + "armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a", + "armeabi-v7a": ":cc-compiler-armeabi-v7a", + }, +) + +cc_toolchain( + name = "cc-compiler-k8", + toolchain_identifier = "local", + toolchain_config = ":local", + all_files = ":compiler_deps", + ar_files = ":compiler_deps", + as_files = ":compiler_deps", + compiler_files = ":compiler_deps", + dwp_files = ":empty", + linker_files = ":compiler_deps", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, +) + +cc_toolchain_config( + name = "local", + cpu = "k8", + compiler = "clang", + toolchain_identifier = "local", + host_system_name = "local", + target_system_name = "local", + target_libc = "local", + abi_version = "local", + abi_libc_version = "local", + cxx_builtin_include_directories = ["/usr/local/include", + "/usr/lib/llvm-8/lib/clang/8.0.1/include", + "/usr/include/x86_64-linux-gnu", + "/usr/include", + "/usr/lib/llvm-8/include/c++/v1", + "/usr/include/clang/8.0.1/include"], + tool_paths = {"ar": "/usr/bin/ar", + "ld": "/usr/bin/ld", + "cpp": "/usr/bin/cpp", + "gcc": "/usr/lib/llvm-8/bin/clang", + "dwp": "/usr/bin/dwp", + "gcov": "/usr/lib/llvm-8/bin/llvm-profdata", + "nm": "/usr/bin/nm", + "objcopy": "/usr/bin/objcopy", + "objdump": "/usr/bin/objdump", + "strip": "/usr/bin/strip"}, + compile_flags = ["-U_FORTIFY_SOURCE", + "-fstack-protector", + "-Wall", + "-Wthread-safety", + "-Wself-assign", + "-fcolor-diagnostics", + "-fno-omit-frame-pointer"], + opt_compile_flags = ["-g0", + "-O2", + "-D_FORTIFY_SOURCE=1", + "-DNDEBUG", + "-ffunction-sections", + "-fdata-sections"], + dbg_compile_flags = ["-g"], + cxx_flags = ["-stdlib=libc++"], + link_flags = ["-fuse-ld=gold", + "-Wl,-no-as-needed", + "-Wl,-z,relro,-z,now", + "-B/usr/lib/llvm-8/bin", + "-lm", + "-static-libgcc", + "-pthread", + "-fuse-ld=lld"], + link_libs = ["-l:libc++.a", + "-l:libc++abi.a"], + opt_link_flags = ["-Wl,--gc-sections"], + unfiltered_compile_flags = ["-no-canonical-prefixes", + "-Wno-builtin-macro-redefined", + "-D__DATE__=\"redacted\"", + "-D__TIMESTAMP__=\"redacted\"", + "-D__TIME__=\"redacted\""], + coverage_compile_flags = ["-fprofile-instr-generate", "-fcoverage-mapping"], + coverage_link_flags = ["-fprofile-instr-generate"], + supports_start_end_lib = True, +) + +# Android tooling requires a default toolchain for the armeabi-v7a cpu. +cc_toolchain( + name = "cc-compiler-armeabi-v7a", + toolchain_identifier = "stub_armeabi-v7a", + toolchain_config = ":stub_armeabi-v7a", + all_files = ":empty", + ar_files = ":empty", + as_files = ":empty", + compiler_files = ":empty", + dwp_files = ":empty", + linker_files = ":empty", + objcopy_files = ":empty", + strip_files = ":empty", + supports_param_files = 1, +) + +armeabi_cc_toolchain_config(name = "stub_armeabi-v7a") diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/cc/armeabi_cc_toolchain_config.bzl b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl similarity index 100% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/cc/armeabi_cc_toolchain_config.bzl rename to bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/cc/cc_toolchain_config.bzl b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/cc_toolchain_config.bzl similarity index 100% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/cc/cc_toolchain_config.bzl rename to bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/cc_toolchain_config.bzl diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/java/BUILD b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/cc_wrapper.sh old mode 100644 new mode 100755 similarity index 60% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/java/BUILD rename to bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/cc_wrapper.sh index 7c273a5b0e497..b7ff6355883ca --- a/bazel/toolchains/configs/gcc/bazel_0.28.0/java/BUILD +++ b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc/cc_wrapper.sh @@ -1,4 +1,6 @@ -# Copyright 2016 The Bazel Authors. All rights reserved. +#!/bin/bash +# +# Copyright 2015 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. @@ -11,15 +13,13 @@ # 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. +# +# Ship the environment to the C++ action +# +set -eu -# This file is auto-generated by an rbe_autoconfig repository rule -# and should not be modified directly. -# See @bazel_toolchains//rules:rbe_repo.bzl +# Set-up the environment -package(default_visibility = ["//visibility:public"]) -java_runtime( - name = "jdk", - srcs = [], - java_home = "/usr/lib/jvm/java-8-openjdk-amd64", -) +# Call the C++ compiler +/usr/lib/llvm-8/bin/clang "$@" diff --git a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD new file mode 100644 index 0000000000000..d833cb4a57c59 --- /dev/null +++ b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD @@ -0,0 +1,53 @@ +# Copyright 2016 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 file is auto-generated by an rbe_autoconfig repository rule +# and should not be modified directly. +# See @bazel_toolchains//rules:rbe_repo.bzl + +package(default_visibility = ["//visibility:public"]) + +toolchain( + name = "cc-toolchain", + exec_compatible_with = [ + "@bazel_tools//platforms:x86_64", + "@bazel_tools//platforms:linux", + "@bazel_tools//tools/cpp:clang", + ], + target_compatible_with = [ + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", + ], + toolchain = "//bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/cc:cc-compiler-k8", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", +) + +platform( + name = "platform", + constraint_values = [ + "@bazel_tools//platforms:x86_64", + "@bazel_tools//platforms:linux", + "@bazel_tools//tools/cpp:clang", + ], + remote_execution_properties = """ + properties: { + name: "container-image" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" + } + properties { + name: "OSFamily" + value: "Linux" + } + """, +) diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/cc/BUILD b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/BUILD similarity index 98% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/cc/BUILD rename to bazel/toolchains/configs/gcc/bazel_0.28.1/cc/BUILD index eb9ab72263f17..0390586c9ccdc 100755 --- a/bazel/toolchains/configs/gcc/bazel_0.28.0/cc/BUILD +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/BUILD @@ -91,7 +91,7 @@ cc_toolchain_config( "cpp": "/usr/bin/cpp", "gcc": "/usr/bin/gcc", "dwp": "/usr/bin/dwp", - "gcov": "/usr/bin/gcov", + "gcov": "None", "nm": "/usr/bin/nm", "objcopy": "/usr/bin/objcopy", "objdump": "/usr/bin/objdump", @@ -116,7 +116,8 @@ cc_toolchain_config( "-B/usr/bin", "-pass-exit-codes", "-lm", - "-static-libgcc"], + "-static-libgcc", + "-fuse-ld=lld"], link_libs = ["-l:libstdc++.a"], opt_link_flags = ["-Wl,--gc-sections"], unfiltered_compile_flags = ["-fno-canonical-system-headers", diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl new file mode 100755 index 0000000000000..94e0720bf6c96 --- /dev/null +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/armeabi_cc_toolchain_config.bzl @@ -0,0 +1,82 @@ +# Copyright 2019 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. + +"""A Starlark cc_toolchain configuration rule""" + +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "feature", + "tool_path", +) + +def _impl(ctx): + toolchain_identifier = "stub_armeabi-v7a" + host_system_name = "armeabi-v7a" + target_system_name = "armeabi-v7a" + target_cpu = "armeabi-v7a" + target_libc = "armeabi-v7a" + compiler = "compiler" + abi_version = "armeabi-v7a" + abi_libc_version = "armeabi-v7a" + cc_target_os = None + builtin_sysroot = None + action_configs = [] + + supports_pic_feature = feature(name = "supports_pic", enabled = True) + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + features = [supports_dynamic_linker_feature, supports_pic_feature] + + cxx_builtin_include_directories = [] + artifact_name_patterns = [] + make_variables = [] + + tool_paths = [ + tool_path(name = "ar", path = "/bin/false"), + tool_path(name = "compat-ld", path = "/bin/false"), + tool_path(name = "cpp", path = "/bin/false"), + tool_path(name = "dwp", path = "/bin/false"), + tool_path(name = "gcc", path = "/bin/false"), + tool_path(name = "gcov", path = "/bin/false"), + tool_path(name = "ld", path = "/bin/false"), + tool_path(name = "nm", path = "/bin/false"), + tool_path(name = "objcopy", path = "/bin/false"), + tool_path(name = "objdump", path = "/bin/false"), + tool_path(name = "strip", path = "/bin/false"), + ] + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + artifact_name_patterns = artifact_name_patterns, + cxx_builtin_include_directories = cxx_builtin_include_directories, + toolchain_identifier = toolchain_identifier, + host_system_name = host_system_name, + target_system_name = target_system_name, + target_cpu = target_cpu, + target_libc = target_libc, + compiler = compiler, + abi_version = abi_version, + abi_libc_version = abi_libc_version, + tool_paths = tool_paths, + make_variables = make_variables, + builtin_sysroot = builtin_sysroot, + cc_target_os = cc_target_os, + ) + +armeabi_cc_toolchain_config = rule( + implementation = _impl, + attrs = {}, + provides = [CcToolchainConfigInfo], +) diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_toolchain_config.bzl b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_toolchain_config.bzl new file mode 100755 index 0000000000000..f2b12d962963c --- /dev/null +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_toolchain_config.bzl @@ -0,0 +1,1202 @@ +# Copyright 2019 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. + +"""A Starlark cc_toolchain configuration rule""" + +load( + "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", + "feature", + "feature_set", + "flag_group", + "flag_set", + "tool_path", + "variable_with_value", + "with_feature_set", +) +load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") + +all_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, + ACTION_NAMES.lto_backend, +] + +all_cpp_compile_actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.clif_match, +] + +preprocessor_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, +] + +codegen_compile_actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, +] + +all_link_actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, +] + +def _impl(ctx): + tool_paths = [ + tool_path(name = name, path = path) + for name, path in ctx.attr.tool_paths.items() + ] + action_configs = [] + + supports_pic_feature = feature( + name = "supports_pic", + enabled = True, + ) + supports_start_end_lib_feature = feature( + name = "supports_start_end_lib", + enabled = True, + ) + + default_compile_flags_feature = feature( + name = "default_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = ([ + flag_group( + flags = ctx.attr.compile_flags, + ), + ] if ctx.attr.compile_flags else []), + ), + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = ([ + flag_group( + flags = ctx.attr.dbg_compile_flags, + ), + ] if ctx.attr.dbg_compile_flags else []), + with_features = [with_feature_set(features = ["dbg"])], + ), + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_compile_flags, + ), + ] if ctx.attr.opt_compile_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + flag_set( + actions = [ + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = ([ + flag_group( + flags = ctx.attr.cxx_flags, + ), + ] if ctx.attr.cxx_flags else []), + ), + ], + ) + + default_link_flags_feature = feature( + name = "default_link_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.link_flags, + ), + ] if ctx.attr.link_flags else []), + ), + flag_set( + actions = all_link_actions, + flag_groups = ([ + flag_group( + flags = ctx.attr.opt_link_flags, + ), + ] if ctx.attr.opt_link_flags else []), + with_features = [with_feature_set(features = ["opt"])], + ), + ], + ) + + dbg_feature = feature(name = "dbg") + + opt_feature = feature(name = "opt") + + sysroot_feature = feature( + name = "sysroot", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = ["--sysroot=%{sysroot}"], + expand_if_available = "sysroot", + ), + ], + ), + ], + ) + + fdo_optimize_feature = feature( + name = "fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) + + user_compile_flags_feature = feature( + name = "user_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["%{user_compile_flags}"], + iterate_over = "user_compile_flags", + expand_if_available = "user_compile_flags", + ), + ], + ), + ], + ) + + unfiltered_compile_flags_feature = feature( + name = "unfiltered_compile_flags", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.lto_backend, + ACTION_NAMES.clif_match, + ], + flag_groups = ([ + flag_group( + flags = ctx.attr.unfiltered_compile_flags, + ), + ] if ctx.attr.unfiltered_compile_flags else []), + ), + ], + ) + + library_search_directories_feature = feature( + name = "library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["-L%{library_search_directories}"], + iterate_over = "library_search_directories", + expand_if_available = "library_search_directories", + ), + ], + ), + ], + ) + + static_libgcc_feature = feature( + name = "static_libgcc", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_executable, + ACTION_NAMES.cpp_link_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-static-libgcc"])], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + ], + ) + + pic_feature = feature( + name = "pic", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group(flags = ["-fPIC"], expand_if_available = "pic"), + ], + ), + ], + ) + + per_object_debug_info_feature = feature( + name = "per_object_debug_info", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ], + flag_groups = [ + flag_group( + flags = ["-gsplit-dwarf"], + expand_if_available = "per_object_debug_info_file", + ), + ], + ), + ], + ) + + preprocessor_defines_feature = feature( + name = "preprocessor_defines", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-D%{preprocessor_defines}"], + iterate_over = "preprocessor_defines", + ), + ], + ), + ], + ) + + cs_fdo_optimize_feature = feature( + name = "cs_fdo_optimize", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.lto_backend], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-use=%{fdo_profile_path}", + "-Xclang-only=-Wno-profile-instr-unprofiled", + "-Xclang-only=-Wno-profile-instr-out-of-date", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + autofdo_feature = feature( + name = "autofdo", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + flag_groups = [ + flag_group( + flags = [ + "-fauto-profile=%{fdo_profile_path}", + "-fprofile-correction", + ], + expand_if_available = "fdo_profile_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + runtime_library_search_directories_feature = feature( + name = "runtime_library_search_directories", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_true = "is_cc_test", + ), + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + expand_if_false = "is_cc_test", + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set(features = ["static_link_cpp_runtimes"]), + ], + ), + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + iterate_over = "runtime_library_search_directories", + flag_groups = [ + flag_group( + flags = [ + "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}", + ], + ), + ], + expand_if_available = + "runtime_library_search_directories", + ), + ], + with_features = [ + with_feature_set( + not_features = ["static_link_cpp_runtimes"], + ), + ], + ), + ], + ) + + fission_support_feature = feature( + name = "fission_support", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,--gdb-index"], + expand_if_available = "is_using_fission", + ), + ], + ), + ], + ) + + shared_flag_feature = feature( + name = "shared_flag", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [flag_group(flags = ["-shared"])], + ), + ], + ) + + random_seed_feature = feature( + name = "random_seed", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_codegen, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = [ + flag_group( + flags = ["-frandom-seed=%{output_file}"], + expand_if_available = "output_file", + ), + ], + ), + ], + ) + + includes_feature = feature( + name = "includes", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-include", "%{includes}"], + iterate_over = "includes", + expand_if_available = "includes", + ), + ], + ), + ], + ) + + fdo_instrument_feature = feature( + name = "fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + ], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-generate=%{fdo_instrument_path}", + "-fno-data-sections", + ], + expand_if_available = "fdo_instrument_path", + ), + ], + ), + ], + provides = ["profile"], + ) + + cs_fdo_instrument_feature = feature( + name = "cs_fdo_instrument", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + ], + flag_groups = [ + flag_group( + flags = [ + "-fcs-profile-generate=%{cs_fdo_instrument_path}", + ], + expand_if_available = "cs_fdo_instrument_path", + ), + ], + ), + ], + provides = ["csprofile"], + ) + + include_paths_feature = feature( + name = "include_paths", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.linkstamp_compile, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.clif_match, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = ["-iquote", "%{quote_include_paths}"], + iterate_over = "quote_include_paths", + ), + flag_group( + flags = ["-I%{include_paths}"], + iterate_over = "include_paths", + ), + flag_group( + flags = ["-isystem", "%{system_include_paths}"], + iterate_over = "system_include_paths", + ), + ], + ), + ], + ) + + symbol_counts_feature = feature( + name = "symbol_counts", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = [ + "-Wl,--print-symbol-counts=%{symbol_counts_output}", + ], + expand_if_available = "symbol_counts_output", + ), + ], + ), + ], + ) + + llvm_coverage_map_format_feature = feature( + name = "llvm_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ], + flag_groups = [ + flag_group( + flags = [ + "-fprofile-instr-generate", + "-fcoverage-mapping", + ], + ), + ], + ), + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group(flags = ["-fprofile-instr-generate"]), + ], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + strip_debug_symbols_feature = feature( + name = "strip_debug_symbols", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["-Wl,-S"], + expand_if_available = "strip_debug_symbols", + ), + ], + ), + ], + ) + + build_interface_libraries_feature = feature( + name = "build_interface_libraries", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [ + "%{generate_interface_library}", + "%{interface_library_builder_path}", + "%{interface_library_input_path}", + "%{interface_library_output_path}", + ], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + libraries_to_link_feature = feature( + name = "libraries_to_link", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["-Wl,--start-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["-Wl,-whole-archive"], + expand_if_true = + "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "interface_library", + ), + ), + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "static_library", + ), + ), + flag_group( + flags = ["-l%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "dynamic_library", + ), + ), + flag_group( + flags = ["-l:%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "versioned_dynamic_library", + ), + ), + flag_group( + flags = ["-Wl,-no-whole-archive"], + expand_if_true = "libraries_to_link.is_whole_archive", + ), + flag_group( + flags = ["-Wl,--end-lib"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + flag_group( + flags = ["-Wl,@%{thinlto_param_file}"], + expand_if_true = "thinlto_param_file", + ), + ], + ), + ], + ) + + user_link_flags_feature = feature( + name = "user_link_flags", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{user_link_flags}"], + iterate_over = "user_link_flags", + expand_if_available = "user_link_flags", + ), + ] + ([flag_group(flags = ctx.attr.link_libs)] if ctx.attr.link_libs else []), + ), + ], + ) + + fdo_prefetch_hints_feature = feature( + name = "fdo_prefetch_hints", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.lto_backend, + ], + flag_groups = [ + flag_group( + flags = [ + "-Xclang-only=-mllvm", + "-Xclang-only=-prefetch-hints-file=%{fdo_prefetch_hints_path}", + ], + expand_if_available = "fdo_prefetch_hints_path", + ), + ], + ), + ], + ) + + linkstamps_feature = feature( + name = "linkstamps", + flag_sets = [ + flag_set( + actions = all_link_actions, + flag_groups = [ + flag_group( + flags = ["%{linkstamp_paths}"], + iterate_over = "linkstamp_paths", + expand_if_available = "linkstamp_paths", + ), + ], + ), + ], + ) + + gcc_coverage_map_format_feature = feature( + name = "gcc_coverage_map_format", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + "objc-executable", + "objc++-executable", + ], + flag_groups = [ + flag_group( + flags = ["-fprofile-arcs", "-ftest-coverage"], + expand_if_available = "gcov_gcno_file", + ), + ], + ), + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + ], + flag_groups = [flag_group(flags = ["--coverage"])], + ), + ], + requires = [feature_set(features = ["coverage"])], + provides = ["profile"], + ) + + archiver_flags_feature = feature( + name = "archiver_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group(flags = ["rcsD"]), + flag_group( + flags = ["%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + flag_set( + actions = [ACTION_NAMES.cpp_link_static_library], + flag_groups = [ + flag_group( + iterate_over = "libraries_to_link", + flag_groups = [ + flag_group( + flags = ["%{libraries_to_link.name}"], + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file", + ), + ), + flag_group( + flags = ["%{libraries_to_link.object_files}"], + iterate_over = "libraries_to_link.object_files", + expand_if_equal = variable_with_value( + name = "libraries_to_link.type", + value = "object_file_group", + ), + ), + ], + expand_if_available = "libraries_to_link", + ), + ], + ), + ], + ) + + force_pic_flags_feature = feature( + name = "force_pic_flags", + flag_sets = [ + flag_set( + actions = [ACTION_NAMES.cpp_link_executable], + flag_groups = [ + flag_group( + flags = ["-pie"], + expand_if_available = "force_pic", + ), + ], + ), + ], + ) + + dependency_file_feature = feature( + name = "dependency_file", + enabled = True, + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["-MD", "-MF", "%{dependency_file}"], + expand_if_available = "dependency_file", + ), + ], + ), + ], + ) + + dynamic_library_linker_tool_feature = feature( + name = "dynamic_library_linker_tool", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ], + flag_groups = [ + flag_group( + flags = [" + cppLinkDynamicLibraryToolPath + "], + expand_if_available = "generate_interface_library", + ), + ], + with_features = [ + with_feature_set( + features = ["supports_interface_shared_libraries"], + ), + ], + ), + ], + ) + + output_execpath_flags_feature = feature( + name = "output_execpath_flags", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + ], + flag_groups = [ + flag_group( + flags = ["-o", "%{output_execpath}"], + expand_if_available = "output_execpath", + ), + ], + ), + ], + ) + + # Note that we also set --coverage for c++-link-nodeps-dynamic-library. The + # generated code contains references to gcov symbols, and the dynamic linker + # can't resolve them unless the library is linked against gcov. + coverage_feature = feature( + name = "coverage", + provides = ["profile"], + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.cpp_module_compile, + ], + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_compile_flags), + ] if ctx.attr.coverage_compile_flags else []), + ), + flag_set( + actions = [ + ACTION_NAMES.cpp_link_dynamic_library, + ACTION_NAMES.cpp_link_nodeps_dynamic_library, + ACTION_NAMES.cpp_link_executable, + ], + flag_groups = ([ + flag_group(flags = ctx.attr.coverage_link_flags), + ] if ctx.attr.coverage_link_flags else []), + ), + ], + ) + + is_linux = ctx.attr.target_libc != "macosx" + + # TODO(#8303): Mac crosstool should also declare every feature. + if is_linux: + features = [ + dependency_file_feature, + random_seed_feature, + pic_feature, + per_object_debug_info_feature, + preprocessor_defines_feature, + includes_feature, + include_paths_feature, + fdo_instrument_feature, + cs_fdo_instrument_feature, + cs_fdo_optimize_feature, + fdo_prefetch_hints_feature, + autofdo_feature, + build_interface_libraries_feature, + dynamic_library_linker_tool_feature, + symbol_counts_feature, + shared_flag_feature, + linkstamps_feature, + output_execpath_flags_feature, + runtime_library_search_directories_feature, + library_search_directories_feature, + archiver_flags_feature, + force_pic_flags_feature, + fission_support_feature, + strip_debug_symbols_feature, + coverage_feature, + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + default_compile_flags_feature, + default_link_flags_feature, + libraries_to_link_feature, + user_link_flags_feature, + static_libgcc_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + else: + features = [ + supports_pic_feature, + ] + ( + [ + supports_start_end_lib_feature, + ] if ctx.attr.supports_start_end_lib else [] + ) + [ + coverage_feature, + default_compile_flags_feature, + default_link_flags_feature, + fdo_optimize_feature, + supports_dynamic_linker_feature, + dbg_feature, + opt_feature, + user_compile_flags_feature, + sysroot_feature, + unfiltered_compile_flags_feature, + ] + + return cc_common.create_cc_toolchain_config_info( + ctx = ctx, + features = features, + action_configs = action_configs, + cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, + toolchain_identifier = ctx.attr.toolchain_identifier, + host_system_name = ctx.attr.host_system_name, + target_system_name = ctx.attr.target_system_name, + target_cpu = ctx.attr.cpu, + target_libc = ctx.attr.target_libc, + compiler = ctx.attr.compiler, + abi_version = ctx.attr.abi_version, + abi_libc_version = ctx.attr.abi_libc_version, + tool_paths = tool_paths, + ) + +cc_toolchain_config = rule( + implementation = _impl, + attrs = { + "cpu": attr.string(mandatory = True), + "compiler": attr.string(mandatory = True), + "toolchain_identifier": attr.string(mandatory = True), + "host_system_name": attr.string(mandatory = True), + "target_system_name": attr.string(mandatory = True), + "target_libc": attr.string(mandatory = True), + "abi_version": attr.string(mandatory = True), + "abi_libc_version": attr.string(mandatory = True), + "cxx_builtin_include_directories": attr.string_list(), + "tool_paths": attr.string_dict(), + "compile_flags": attr.string_list(), + "dbg_compile_flags": attr.string_list(), + "opt_compile_flags": attr.string_list(), + "cxx_flags": attr.string_list(), + "link_flags": attr.string_list(), + "link_libs": attr.string_list(), + "opt_link_flags": attr.string_list(), + "unfiltered_compile_flags": attr.string_list(), + "coverage_compile_flags": attr.string_list(), + "coverage_link_flags": attr.string_list(), + "supports_start_end_lib": attr.bool(), + }, + provides = [CcToolchainConfigInfo], +) diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/cc/cc_wrapper.sh b/bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_wrapper.sh similarity index 100% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/cc/cc_wrapper.sh rename to bazel/toolchains/configs/gcc/bazel_0.28.1/cc/cc_wrapper.sh diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.0/config/BUILD b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD similarity index 89% rename from bazel/toolchains/configs/gcc/bazel_0.28.0/config/BUILD rename to bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD index 2d431bd2ce038..2e3e0ad5637cc 100644 --- a/bazel/toolchains/configs/gcc/bazel_0.28.0/config/BUILD +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD @@ -29,7 +29,7 @@ toolchain( "@bazel_tools//platforms:linux", "@bazel_tools//platforms:x86_64", ], - toolchain = "//bazel/toolchains/configs/gcc/bazel_0.28.0/cc:cc-compiler-k8", + toolchain = "//bazel/toolchains/configs/gcc/bazel_0.28.1/cc:cc-compiler-k8", toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", ) @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/envoy-ci/envoy-build@sha256:9dbe1cba2b3340d49a25a1d286c8d49083ec986a6fead27f487e80ca334f065f" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/versions.bzl b/bazel/toolchains/configs/versions.bzl index 6704b14fa5426..2dde556602c52 100644 --- a/bazel/toolchains/configs/versions.bzl +++ b/bazel/toolchains/configs/versions.bzl @@ -1,16 +1,17 @@ # Generated file, do not modify by hand # Generated by 'rbe_ubuntu_gcc_gen' rbe_autoconfig rule """Definitions to be used in rbe_repo attr of an rbe_autoconf rule """ -toolchain_config_spec0 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "clang") -toolchain_config_spec1 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "gcc") -_TOOLCHAIN_CONFIG_SPECS = [toolchain_config_spec0,toolchain_config_spec1] -_BAZEL_TO_CONFIG_SPEC_NAMES = {"0.28.0": ["clang", "gcc"]} -LATEST = "sha256:9dbe1cba2b3340d49a25a1d286c8d49083ec986a6fead27f487e80ca334f065f" -_CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:9dbe1cba2b3340d49a25a1d286c8d49083ec986a6fead27f487e80ca334f065f": ["clang", "gcc"]} +toolchain_config_spec0 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "clang") +toolchain_config_spec1 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libc++.a:-l%:libc++abi.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-pthread:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin", "BAZEL_CXXOPTS": "-stdlib=libc++", "CXXFLAGS": "-stdlib=libc++"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "clang_libcxx") +toolchain_config_spec2 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "gcc") +_TOOLCHAIN_CONFIG_SPECS = [toolchain_config_spec0,toolchain_config_spec1,toolchain_config_spec2] +_BAZEL_TO_CONFIG_SPEC_NAMES = {"0.28.1": ["clang", "clang_libcxx", "gcc"]} +LATEST = "sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" +CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d": ["clang", "clang_libcxx", "gcc"]} _DEFAULT_TOOLCHAIN_CONFIG_SPEC = toolchain_config_spec0 TOOLCHAIN_CONFIG_AUTOGEN_SPEC = struct( bazel_to_config_spec_names_map = _BAZEL_TO_CONFIG_SPEC_NAMES, - container_to_config_spec_names_map = _CONTAINER_TO_CONFIG_SPEC_NAMES, + container_to_config_spec_names_map = CONTAINER_TO_CONFIG_SPEC_NAMES, default_toolchain_config_spec = _DEFAULT_TOOLCHAIN_CONFIG_SPEC, latest_container = LATEST, toolchain_config_specs = _TOOLCHAIN_CONFIG_SPECS, diff --git a/bazel/toolchains/rbe_toolchains_config.bzl b/bazel/toolchains/rbe_toolchains_config.bzl index c1f32be5d78a2..e614e35a057af 100644 --- a/bazel/toolchains/rbe_toolchains_config.bzl +++ b/bazel/toolchains/rbe_toolchains_config.bzl @@ -1,16 +1,21 @@ +load("@bazel_skylib//lib:dicts.bzl", "dicts") load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig") load("@envoy//bazel/toolchains:configs/versions.bzl", _generated_toolchain_config_suite_autogen_spec = "TOOLCHAIN_CONFIG_AUTOGEN_SPEC") _ENVOY_BUILD_IMAGE_REGISTRY = "gcr.io" _ENVOY_BUILD_IMAGE_REPOSITORY = "envoy-ci/envoy-build" -_ENVOY_BUILD_IMAGE_DIGEST = "sha256:9dbe1cba2b3340d49a25a1d286c8d49083ec986a6fead27f487e80ca334f065f" -_ENVOY_BUILD_IMAGE_JAVA_HOME = "/usr/lib/jvm/java-8-openjdk-amd64" +_ENVOY_BUILD_IMAGE_DIGEST = "sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" _CONFIGS_OUTPUT_BASE = "bazel/toolchains/configs" +# We don't have JDK in the image anymore other than Bazel embedded one though it is not usable outside Bazel. +# This is a workaround to https://github.com/bazelbuild/bazel-toolchains/issues/649 otherwise config generation doesn't work. +# TODO(lizan): Clean this up once the issue above is resolved. +_ENVOY_BUILD_IMAGE_JAVA_HOME = "/usr/lib/jvm/java-8-openjdk-amd64" + _CLANG_ENV = { "BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", - "BAZEL_LINKOPTS": "-lm:-static-libgcc", + "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", @@ -18,10 +23,17 @@ _CLANG_ENV = { "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin", } +_CLANG_LIBCXX_ENV = dicts.add(_CLANG_ENV, { + "BAZEL_LINKLIBS": "-l%:libc++.a:-l%:libc++abi.a", + "BAZEL_LINKOPTS": "-lm:-static-libgcc:-pthread:-fuse-ld=lld", + "BAZEL_CXXOPTS": "-stdlib=libc++", + "CXXFLAGS": "-stdlib=libc++", +}) + _GCC_ENV = { "BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", - "BAZEL_LINKOPTS": "-lm:-static-libgcc", + "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin", @@ -35,46 +47,32 @@ _TOOLCHAIN_CONFIG_SUITE_SPEC = { "toolchain_config_suite_autogen_spec": _generated_toolchain_config_suite_autogen_spec, } -def _rbe_toolchains_generator(): +def _envoy_rbe_toolchain(name, env, toolchain_config_spec_name): rbe_autoconfig( - name = "rbe_ubuntu_clang_gen", - digest = _ENVOY_BUILD_IMAGE_DIGEST, + name = name + "_gen", export_configs = True, java_home = _ENVOY_BUILD_IMAGE_JAVA_HOME, - registry = _ENVOY_BUILD_IMAGE_REGISTRY, - repository = _ENVOY_BUILD_IMAGE_REPOSITORY, - env = _CLANG_ENV, - toolchain_config_spec_name = "clang", - toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC, - use_checked_in_confs = "False", - ) - - rbe_autoconfig( - name = "rbe_ubuntu_gcc_gen", digest = _ENVOY_BUILD_IMAGE_DIGEST, - export_configs = True, - java_home = _ENVOY_BUILD_IMAGE_JAVA_HOME, registry = _ENVOY_BUILD_IMAGE_REGISTRY, repository = _ENVOY_BUILD_IMAGE_REPOSITORY, - env = _GCC_ENV, - toolchain_config_spec_name = "gcc", + env = env, + toolchain_config_spec_name = toolchain_config_spec_name, toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC, use_checked_in_confs = "False", ) -def _generated_rbe_toolchains(): rbe_autoconfig( - name = "rbe_ubuntu_clang", - digest = _ENVOY_BUILD_IMAGE_DIGEST, - export_configs = True, + name = name, java_home = _ENVOY_BUILD_IMAGE_JAVA_HOME, + digest = _ENVOY_BUILD_IMAGE_DIGEST, registry = _ENVOY_BUILD_IMAGE_REGISTRY, repository = _ENVOY_BUILD_IMAGE_REPOSITORY, - toolchain_config_spec_name = "clang", + toolchain_config_spec_name = toolchain_config_spec_name, toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC, use_checked_in_confs = "Force", ) def rbe_toolchains_config(): - _rbe_toolchains_generator() - _generated_rbe_toolchains() + _envoy_rbe_toolchain("rbe_ubuntu_clang", _CLANG_ENV, "clang") + _envoy_rbe_toolchain("rbe_ubuntu_clang_libcxx", _CLANG_LIBCXX_ENV, "clang_libcxx") + _envoy_rbe_toolchain("rbe_ubuntu_gcc", _GCC_ENV, "gcc") diff --git a/bazel/toolchains/regenerate.sh b/bazel/toolchains/regenerate.sh index c71a0506d178a..b391a9efad9c7 100755 --- a/bazel/toolchains/regenerate.sh +++ b/bazel/toolchains/regenerate.sh @@ -4,9 +4,10 @@ set -e export RBE_AUTOCONF_ROOT=$(bazel info workspace) -rm -rf "${RBE_AUTOCONF_ROOT}/bazel/toolchains/configs/*" +rm -rf "${RBE_AUTOCONF_ROOT}"/bazel/toolchains/configs/* cp -vf "${RBE_AUTOCONF_ROOT}/bazel/toolchains/empty.bzl" "${RBE_AUTOCONF_ROOT}/bazel/toolchains/configs/versions.bzl" # Bazel query is the right command so bazel won't fail itself. -bazel query "@rbe_ubuntu_clang_gen//..." -bazel query "@rbe_ubuntu_gcc_gen//..." +bazel query ${BAZEL_QUERY_OPTIONS} "@rbe_ubuntu_clang_gen//..." +bazel query ${BAZEL_QUERY_OPTIONS} "@rbe_ubuntu_clang_libcxx_gen//..." +bazel query ${BAZEL_QUERY_OPTIONS} "@rbe_ubuntu_gcc_gen//..." From 0a5365b727e19645d654baa2dbf936cd9e3dc1b8 Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Wed, 31 Jul 2019 22:31:23 +0000 Subject: [PATCH 02/10] fix format requirement Signed-off-by: Lizan Zhou --- tools/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/requirements.txt b/tools/requirements.txt index b6920fa69873f..a134fe62bfd82 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,2 +1,3 @@ +setuptools>=33.1.1 flake8==3.7.7 yapf==0.25.0 From 7d303a2bb027625a046a445b7df0b998dab0826a Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Wed, 31 Jul 2019 22:48:27 +0000 Subject: [PATCH 03/10] testing with newer image Signed-off-by: Lizan Zhou --- .circleci/config.yml | 3 ++- tools/requirements.txt | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4aa7ecc9a8de9..cb9c81570b0e8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,8 @@ executors: description: "A regular build executor based on ubuntu image" docker: # NOTE: Update bazel/toolchains/rbe_toolchains_config.bzl with sha256 digest to match the image here. - - image: envoyproxy/envoy-build:284009009dc2db7bfabf16da826917b57b104243 + # revert back once image tested + - image: lizan/ubuntu-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b resource_class: xlarge working_directory: /source diff --git a/tools/requirements.txt b/tools/requirements.txt index a134fe62bfd82..b6920fa69873f 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,3 +1,2 @@ -setuptools>=33.1.1 flake8==3.7.7 yapf==0.25.0 From 7702f3869aff7c1a8c35a5b4c3d99a4fd5efb99f Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Wed, 31 Jul 2019 23:16:28 +0000 Subject: [PATCH 04/10] just test Signed-off-by: Lizan Zhou --- ci/envoy_build_sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envoy_build_sha.sh b/ci/envoy_build_sha.sh index 709617afe9b68..6101f36e3534b 100644 --- a/ci/envoy_build_sha.sh +++ b/ci/envoy_build_sha.sh @@ -1,2 +1,2 @@ -ENVOY_BUILD_SHA=$(grep envoyproxy/envoy-build .circleci/config.yml | sed -e 's#.*envoyproxy/envoy-build:\(.*\)#\1#' | uniq) +ENVOY_BUILD_SHA=$(grep envoyproxy/envoy-build .circleci/config.yml | sed -e 's#.*lizan/envoy-build:\(.*\)#\1#' | uniq) [[ $(wc -l <<< "${ENVOY_BUILD_SHA}" | awk '{$1=$1};1') == 1 ]] || (echo ".circleci/config.yml hashes are inconsistent!" && exit 1) From 3934d275fbf01d71fd1b3a454beed64ba6cd3324 Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 00:34:24 +0000 Subject: [PATCH 05/10] just test Signed-off-by: Lizan Zhou --- ci/envoy_build_sha.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envoy_build_sha.sh b/ci/envoy_build_sha.sh index 6101f36e3534b..cfb5daca2fff9 100644 --- a/ci/envoy_build_sha.sh +++ b/ci/envoy_build_sha.sh @@ -1,2 +1,2 @@ -ENVOY_BUILD_SHA=$(grep envoyproxy/envoy-build .circleci/config.yml | sed -e 's#.*lizan/envoy-build:\(.*\)#\1#' | uniq) +ENVOY_BUILD_SHA=$(grep lizan/envoy-build .circleci/config.yml | sed -e 's#.*lizan/envoy-build:\(.*\)#\1#' | uniq) [[ $(wc -l <<< "${ENVOY_BUILD_SHA}" | awk '{$1=$1};1') == 1 ]] || (echo ".circleci/config.yml hashes are inconsistent!" && exit 1) From a89bd7dbe3e7b1d05593a1aaa1014a1f80134b47 Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 00:34:51 +0000 Subject: [PATCH 06/10] jdk11 Signed-off-by: Lizan Zhou --- .bazelrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.bazelrc b/.bazelrc index a278bbbd7b770..f3d126fd0eb4f 100644 --- a/.bazelrc +++ b/.bazelrc @@ -16,8 +16,8 @@ build --experimental_local_memory_estimate build --host_force_python=PY2 build --action_env=BAZEL_LINKLIBS=-l%:libstdc++.a build --action_env=BAZEL_LINKOPTS=-lm:-static-libgcc -build --host_javabase=@bazel_tools//tools/jdk:remote_jdk -build --javabase=@bazel_tools//tools/jdk:remote_jdk +build --host_javabase=@bazel_tools//tools/jdk:remote_jdk11 +build --javabase=@bazel_tools//tools/jdk:remote_jdk11 # Basic ASAN/UBSAN that works for gcc build:asan --action_env=BAZEL_LINKLIBS= From e98d7155e137ce8bfe652b283cba06e356df152d Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 00:46:42 +0000 Subject: [PATCH 07/10] just test Signed-off-by: Lizan Zhou --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb9c81570b0e8..852cae0dfbf73 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ executors: docker: # NOTE: Update bazel/toolchains/rbe_toolchains_config.bzl with sha256 digest to match the image here. # revert back once image tested - - image: lizan/ubuntu-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b + - image: lizan/envoy-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b resource_class: xlarge working_directory: /source From 833add4202586cbcf2da10414d761539d62d443f Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 00:59:21 +0000 Subject: [PATCH 08/10] just test Signed-off-by: Lizan Zhou --- ci/run_envoy_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run_envoy_docker.sh b/ci/run_envoy_docker.sh index af828943fb53d..4d5bc10da0c38 100755 --- a/ci/run_envoy_docker.sh +++ b/ci/run_envoy_docker.sh @@ -10,7 +10,7 @@ set -e USER=root USER_GROUP=root -[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="envoyproxy/envoy-build-ubuntu" +[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="lizan/envoy-build" # The IMAGE_ID defaults to the CI hash but can be set to an arbitrary image ID (found with 'docker # images'). [[ -z "${IMAGE_ID}" ]] && IMAGE_ID="${ENVOY_BUILD_SHA}" From b7cc37150192cde75f9422dd21fbf5df6fd93f0c Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 02:13:58 +0000 Subject: [PATCH 09/10] use image from other PR to test Signed-off-by: Lizan Zhou --- .circleci/config.yml | 2 +- bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD | 2 +- .../toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD | 2 +- bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD | 2 +- bazel/toolchains/configs/versions.bzl | 4 ++-- bazel/toolchains/rbe_toolchains_config.bzl | 4 ++-- ci/envoy_build_sha.sh | 2 +- ci/run_envoy_docker.sh | 4 ++-- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 852cae0dfbf73..6d7e5066d718d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ executors: docker: # NOTE: Update bazel/toolchains/rbe_toolchains_config.bzl with sha256 digest to match the image here. # revert back once image tested - - image: lizan/envoy-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b + - image: gcr.io/tetratelabs/envoy-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b resource_class: xlarge working_directory: /source diff --git a/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD index 1b4e54d67c577..ec3f8a709504e 100644 --- a/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" + value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD index d833cb4a57c59..3ad28803716ad 100644 --- a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" + value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD index 2e3e0ad5637cc..f288b0c0ca059 100644 --- a/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/envoy-ci/envoy-build@sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" + value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/versions.bzl b/bazel/toolchains/configs/versions.bzl index 2dde556602c52..eb4f63389b4c1 100644 --- a/bazel/toolchains/configs/versions.bzl +++ b/bazel/toolchains/configs/versions.bzl @@ -6,8 +6,8 @@ toolchain_config_spec1 = struct(config_repos = [], create_cc_configs = True, cre toolchain_config_spec2 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "gcc") _TOOLCHAIN_CONFIG_SPECS = [toolchain_config_spec0,toolchain_config_spec1,toolchain_config_spec2] _BAZEL_TO_CONFIG_SPEC_NAMES = {"0.28.1": ["clang", "clang_libcxx", "gcc"]} -LATEST = "sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" -CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d": ["clang", "clang_libcxx", "gcc"]} +LATEST = "sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" +CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8": ["clang", "clang_libcxx", "gcc"]} _DEFAULT_TOOLCHAIN_CONFIG_SPEC = toolchain_config_spec0 TOOLCHAIN_CONFIG_AUTOGEN_SPEC = struct( bazel_to_config_spec_names_map = _BAZEL_TO_CONFIG_SPEC_NAMES, diff --git a/bazel/toolchains/rbe_toolchains_config.bzl b/bazel/toolchains/rbe_toolchains_config.bzl index e614e35a057af..192145ab0d6ad 100644 --- a/bazel/toolchains/rbe_toolchains_config.bzl +++ b/bazel/toolchains/rbe_toolchains_config.bzl @@ -3,8 +3,8 @@ load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig") load("@envoy//bazel/toolchains:configs/versions.bzl", _generated_toolchain_config_suite_autogen_spec = "TOOLCHAIN_CONFIG_AUTOGEN_SPEC") _ENVOY_BUILD_IMAGE_REGISTRY = "gcr.io" -_ENVOY_BUILD_IMAGE_REPOSITORY = "envoy-ci/envoy-build" -_ENVOY_BUILD_IMAGE_DIGEST = "sha256:c6dc0ebfc3b368ae7f9668bc7729865fc2cb96424e89621425b632ad6ae1533d" +_ENVOY_BUILD_IMAGE_REPOSITORY = "tetratelabs/envoy-build" +_ENVOY_BUILD_IMAGE_DIGEST = "sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" _CONFIGS_OUTPUT_BASE = "bazel/toolchains/configs" # We don't have JDK in the image anymore other than Bazel embedded one though it is not usable outside Bazel. diff --git a/ci/envoy_build_sha.sh b/ci/envoy_build_sha.sh index cfb5daca2fff9..709617afe9b68 100644 --- a/ci/envoy_build_sha.sh +++ b/ci/envoy_build_sha.sh @@ -1,2 +1,2 @@ -ENVOY_BUILD_SHA=$(grep lizan/envoy-build .circleci/config.yml | sed -e 's#.*lizan/envoy-build:\(.*\)#\1#' | uniq) +ENVOY_BUILD_SHA=$(grep envoyproxy/envoy-build .circleci/config.yml | sed -e 's#.*envoyproxy/envoy-build:\(.*\)#\1#' | uniq) [[ $(wc -l <<< "${ENVOY_BUILD_SHA}" | awk '{$1=$1};1') == 1 ]] || (echo ".circleci/config.yml hashes are inconsistent!" && exit 1) diff --git a/ci/run_envoy_docker.sh b/ci/run_envoy_docker.sh index 4d5bc10da0c38..4c26875d0de6a 100755 --- a/ci/run_envoy_docker.sh +++ b/ci/run_envoy_docker.sh @@ -10,10 +10,10 @@ set -e USER=root USER_GROUP=root -[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="lizan/envoy-build" +[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="gcr.io/tetratelabs/envoy-build" # The IMAGE_ID defaults to the CI hash but can be set to an arbitrary image ID (found with 'docker # images'). -[[ -z "${IMAGE_ID}" ]] && IMAGE_ID="${ENVOY_BUILD_SHA}" +[[ -z "${IMAGE_ID}" ]] && IMAGE_ID="ec9150342c7d270216faf8df87ecc9e1e8fc373b" [[ -z "${ENVOY_DOCKER_BUILD_DIR}" ]] && ENVOY_DOCKER_BUILD_DIR=/tmp/envoy-docker-build [[ -f .git ]] && [[ ! -d .git ]] && GIT_VOLUME_OPTION="-v $(git rev-parse --git-common-dir):$(git rev-parse --git-common-dir)" From 07b1a64a5577563b46e958529897d911faca0693 Mon Sep 17 00:00:00 2001 From: Lizan Zhou Date: Thu, 1 Aug 2019 21:12:50 +0000 Subject: [PATCH 10/10] revert tests, roll forward bazel-toolchains Signed-off-by: Lizan Zhou --- .circleci/config.yml | 3 +-- bazel/repository_locations.bzl | 12 +++++++----- .../configs/clang/bazel_0.28.1/config/BUILD | 2 +- .../configs/clang_libcxx/bazel_0.28.1/config/BUILD | 2 +- .../configs/gcc/bazel_0.28.1/config/BUILD | 2 +- bazel/toolchains/configs/versions.bzl | 10 +++++----- bazel/toolchains/rbe_toolchains_config.bzl | 13 ++++--------- ci/run_envoy_docker.sh | 4 ++-- 8 files changed, 22 insertions(+), 26 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6d7e5066d718d..f72ab219b01f6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,8 +5,7 @@ executors: description: "A regular build executor based on ubuntu image" docker: # NOTE: Update bazel/toolchains/rbe_toolchains_config.bzl with sha256 digest to match the image here. - # revert back once image tested - - image: gcr.io/tetratelabs/envoy-build:ec9150342c7d270216faf8df87ecc9e1e8fc373b + - image: envoyproxy/envoy-build:b02c73f3ebbaf5c7852fa814eb3d61e841588068 resource_class: xlarge working_directory: /source diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index ac2d43490d9b4..9b8ef9b5036df 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -4,12 +4,14 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.17.0/bazel-gazelle-0.17.0.tar.gz"], ), bazel_toolchains = dict( - sha256 = "599cb541afc98c5d2522369db8cbcb98688d3e88b6fdf63e1e5a501bd9493089", - strip_prefix = "bazel-toolchains-f7a67715a5c368655a206f611870e836434cdc2a", - # 2019-07-24 - # Need https://github.com/bazelbuild/bazel-toolchains/pull/644 to select correct toolchain from same image + sha256 = "0710ec5a88201c4c3038ea458f7e9078cc3ad7ad61736ab287c115438eb91b1d", + strip_prefix = "bazel-toolchains-5a8611ee011d0d68498b16bf42a9c69d139bc708", + # 2019-08-01 + # Need: + # - https://github.com/bazelbuild/bazel-toolchains/pull/644 to select correct toolchain from same image + # - https://github.com/bazelbuild/bazel-toolchains/pull/650 to support no java config # TODO(lizan): Update to release when new version is released. - urls = ["https://github.com/bazelbuild/bazel-toolchains/archive/f7a67715a5c368655a206f611870e836434cdc2a.tar.gz"], + urls = ["https://github.com/bazelbuild/bazel-toolchains/archive/5a8611ee011d0d68498b16bf42a9c69d139bc708.tar.gz"], ), boringssl = dict( # Use commits from branch "chromium-stable-with-bazel" diff --git a/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD index ec3f8a709504e..0d77a8758817e 100644 --- a/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/clang/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD index 3ad28803716ad..01337270ff96b 100644 --- a/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/clang_libcxx/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD index f288b0c0ca059..f417961407af4 100644 --- a/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD +++ b/bazel/toolchains/configs/gcc/bazel_0.28.1/config/BUILD @@ -43,7 +43,7 @@ platform( remote_execution_properties = """ properties: { name: "container-image" - value:"docker://gcr.io/tetratelabs/envoy-build@sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" + value:"docker://gcr.io/envoy-ci/envoy-build@sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28" } properties { name: "OSFamily" diff --git a/bazel/toolchains/configs/versions.bzl b/bazel/toolchains/configs/versions.bzl index eb4f63389b4c1..114a706ab69a6 100644 --- a/bazel/toolchains/configs/versions.bzl +++ b/bazel/toolchains/configs/versions.bzl @@ -1,13 +1,13 @@ # Generated file, do not modify by hand # Generated by 'rbe_ubuntu_gcc_gen' rbe_autoconfig rule """Definitions to be used in rbe_repo attr of an rbe_autoconf rule """ -toolchain_config_spec0 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "clang") -toolchain_config_spec1 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libc++.a:-l%:libc++abi.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-pthread:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin", "BAZEL_CXXOPTS": "-stdlib=libc++", "CXXFLAGS": "-stdlib=libc++"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "clang_libcxx") -toolchain_config_spec2 = struct(config_repos = [], create_cc_configs = True, create_java_configs = True, env = {"BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = "/usr/lib/jvm/java-8-openjdk-amd64", name = "gcc") +toolchain_config_spec0 = struct(config_repos = [], create_cc_configs = True, create_java_configs = False, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = None, name = "clang") +toolchain_config_spec1 = struct(config_repos = [], create_cc_configs = True, create_java_configs = False, env = {"BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libc++.a:-l%:libc++abi.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-pthread:-fuse-ld=lld", "BAZEL_USE_LLVM_NATIVE_COVERAGE": "1", "GCOV": "llvm-profdata", "CC": "clang", "CXX": "clang++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin", "BAZEL_CXXOPTS": "-stdlib=libc++", "CXXFLAGS": "-stdlib=libc++"}, java_home = None, name = "clang_libcxx") +toolchain_config_spec2 = struct(config_repos = [], create_cc_configs = True, create_java_configs = False, env = {"BAZEL_COMPILER": "gcc", "BAZEL_LINKLIBS": "-l%:libstdc++.a", "BAZEL_LINKOPTS": "-lm:-static-libgcc:-fuse-ld=lld", "CC": "gcc", "CXX": "g++", "PATH": "/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/llvm-8/bin"}, java_home = None, name = "gcc") _TOOLCHAIN_CONFIG_SPECS = [toolchain_config_spec0,toolchain_config_spec1,toolchain_config_spec2] _BAZEL_TO_CONFIG_SPEC_NAMES = {"0.28.1": ["clang", "clang_libcxx", "gcc"]} -LATEST = "sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" -CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8": ["clang", "clang_libcxx", "gcc"]} +LATEST = "sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28" +CONTAINER_TO_CONFIG_SPEC_NAMES = {"sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28": ["clang", "clang_libcxx", "gcc"]} _DEFAULT_TOOLCHAIN_CONFIG_SPEC = toolchain_config_spec0 TOOLCHAIN_CONFIG_AUTOGEN_SPEC = struct( bazel_to_config_spec_names_map = _BAZEL_TO_CONFIG_SPEC_NAMES, diff --git a/bazel/toolchains/rbe_toolchains_config.bzl b/bazel/toolchains/rbe_toolchains_config.bzl index 192145ab0d6ad..c4a34df509299 100644 --- a/bazel/toolchains/rbe_toolchains_config.bzl +++ b/bazel/toolchains/rbe_toolchains_config.bzl @@ -3,15 +3,10 @@ load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig") load("@envoy//bazel/toolchains:configs/versions.bzl", _generated_toolchain_config_suite_autogen_spec = "TOOLCHAIN_CONFIG_AUTOGEN_SPEC") _ENVOY_BUILD_IMAGE_REGISTRY = "gcr.io" -_ENVOY_BUILD_IMAGE_REPOSITORY = "tetratelabs/envoy-build" -_ENVOY_BUILD_IMAGE_DIGEST = "sha256:ec159c0ef37835d870de0ca03ec60c9074ec61cd5985a932114fea34cb0be3b8" +_ENVOY_BUILD_IMAGE_REPOSITORY = "envoy-ci/envoy-build" +_ENVOY_BUILD_IMAGE_DIGEST = "sha256:555fb7b0aa578d11852b57c6c14fd54ab4450ad001a9f03bb5c43d5454460c28" _CONFIGS_OUTPUT_BASE = "bazel/toolchains/configs" -# We don't have JDK in the image anymore other than Bazel embedded one though it is not usable outside Bazel. -# This is a workaround to https://github.com/bazelbuild/bazel-toolchains/issues/649 otherwise config generation doesn't work. -# TODO(lizan): Clean this up once the issue above is resolved. -_ENVOY_BUILD_IMAGE_JAVA_HOME = "/usr/lib/jvm/java-8-openjdk-amd64" - _CLANG_ENV = { "BAZEL_COMPILER": "clang", "BAZEL_LINKLIBS": "-l%:libstdc++.a", @@ -51,7 +46,7 @@ def _envoy_rbe_toolchain(name, env, toolchain_config_spec_name): rbe_autoconfig( name = name + "_gen", export_configs = True, - java_home = _ENVOY_BUILD_IMAGE_JAVA_HOME, + create_java_configs = False, digest = _ENVOY_BUILD_IMAGE_DIGEST, registry = _ENVOY_BUILD_IMAGE_REGISTRY, repository = _ENVOY_BUILD_IMAGE_REPOSITORY, @@ -63,7 +58,7 @@ def _envoy_rbe_toolchain(name, env, toolchain_config_spec_name): rbe_autoconfig( name = name, - java_home = _ENVOY_BUILD_IMAGE_JAVA_HOME, + create_java_configs = False, digest = _ENVOY_BUILD_IMAGE_DIGEST, registry = _ENVOY_BUILD_IMAGE_REGISTRY, repository = _ENVOY_BUILD_IMAGE_REPOSITORY, diff --git a/ci/run_envoy_docker.sh b/ci/run_envoy_docker.sh index 4c26875d0de6a..af828943fb53d 100755 --- a/ci/run_envoy_docker.sh +++ b/ci/run_envoy_docker.sh @@ -10,10 +10,10 @@ set -e USER=root USER_GROUP=root -[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="gcr.io/tetratelabs/envoy-build" +[[ -z "${IMAGE_NAME}" ]] && IMAGE_NAME="envoyproxy/envoy-build-ubuntu" # The IMAGE_ID defaults to the CI hash but can be set to an arbitrary image ID (found with 'docker # images'). -[[ -z "${IMAGE_ID}" ]] && IMAGE_ID="ec9150342c7d270216faf8df87ecc9e1e8fc373b" +[[ -z "${IMAGE_ID}" ]] && IMAGE_ID="${ENVOY_BUILD_SHA}" [[ -z "${ENVOY_DOCKER_BUILD_DIR}" ]] && ENVOY_DOCKER_BUILD_DIR=/tmp/envoy-docker-build [[ -f .git ]] && [[ ! -d .git ]] && GIT_VOLUME_OPTION="-v $(git rev-parse --git-common-dir):$(git rev-parse --git-common-dir)"