Use an amd64 Debian Buster sysroot for building
One of the transitive opencv dependencies needs the newer libc.
Change-Id: I4964bc753aa0dc51c9481896354e272c13a164d5
diff --git a/WORKSPACE b/WORKSPACE
index d0d6347..20fbe73 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -156,11 +156,23 @@
# This copy command to make clang happy: `cp usr/lib/arm-linux-gnueabihf/*.o usr/lib`
http_archive(
name = "armhf_debian_rootfs",
- build_file = "@//:compilers/armhf_debian_rootfs.BUILD",
+ build_file = "@//:compilers/debian_rootfs.BUILD",
sha256 = "8c827bdb79615046ee3e13e85664e5d01286ca1721f7169341667a634e599eb6",
url = "http://frc971.org/Build-Dependencies/2019-09-26-raspbian-buster-lite_rootfs.tar.bz2",
)
+# Created with:
+# `debootstrap buster buster_sysroot`
+# and then chrooting in and running:
+# apt install libc6-dev libstdc++-7-dev
+# and then tarring up the result
+http_archive(
+ name = "amd64_debian_sysroot",
+ build_file = "@//:compilers/debian_rootfs.BUILD",
+ sha256 = "fb0a4f0b35b4c99fcfc83902d2d2eaac7062024b2ff2f998e68736aac92c8e59",
+ url = "http://frc971.org/Build-Dependencies/2019-01-14-debian-buster_rootfs.tar.bz2",
+)
+
new_git_repository(
name = "python_gflags_repo",
build_file = "@//debian:gflags.BUILD",
diff --git a/compilers/armhf_debian_rootfs.BUILD b/compilers/debian_rootfs.BUILD
similarity index 100%
rename from compilers/armhf_debian_rootfs.BUILD
rename to compilers/debian_rootfs.BUILD
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index c15eddf..5ebddd4 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -150,20 +150,22 @@
supports_gold_linker: false
supports_thin_archives: false
needsPic: true
- compiler_flag: "--sysroot=external/clang_6p0_repo/"
+ compiler_flag: "--sysroot=external/amd64_debian_sysroot"
compiler_flag: "-nostdinc"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/x86_64-linux-gnu"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/c++/7"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/x86_64-linux-gnu/c++/7"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/c++/8/backward"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/lib/gcc/x86_64-linux-gnu/8/include"
compiler_flag: "-isystem"
compiler_flag: "external/clang_6p0_repo/usr/lib/llvm-6.0/lib/clang/6.0.0/include"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/c++/7.4.0"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/x86_64-linux-gnu"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/x86_64-linux-gnu/c++/7.4.0"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/c++/7.4.0/backward"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include"
compiler_flag: "-D__STDC_FORMAT_MACROS"
compiler_flag: "-D__STDC_CONSTANT_MACROS"
compiler_flag: "-D__STDC_LIMIT_MACROS"
@@ -190,19 +192,19 @@
compiler_flag: "-fno-omit-frame-pointer"
compiler_flag: "-pipe"
compiler_flag: "-ggdb3"
- cxx_flag: "-isystem"
- cxx_flag: "external/clang_6p0_repo/usr/include"
linker_flag: "-nodefaultlibs"
- linker_flag: "--sysroot=external/clang_6p0_repo/"
+ linker_flag: "--sysroot=external/amd64_debian_sysroot"
linker_flag: "-lstdc++"
linker_flag: "-lc"
linker_flag: "-lgcc"
linker_flag: "-lgcc_s"
linker_flag: "-Bexternal/clang_6p0_repo/usr/bin/"
linker_flag: "-Ltools/cpp/clang_6p0/clang_more_libs"
- linker_flag: "-Lexternal/clang_6p0_repo/lib/x86_64-linux-gnu"
- linker_flag: "-Lexternal/clang_6p0_repo/usr/lib/x86_64-linux-gnu"
- linker_flag: "-Lexternal/clang_6p0_repo/usr/lib/gcc/x86_64-linux-gnu"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/gcc/x86_64-linux-gnu/7/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/x86_64-linux-gnu/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/lib/x86_64-linux-gnu/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/lib/"
linker_flag: "-no-canonical-prefixes"
linker_flag: "-fuse-ld=gold"
linker_flag: "-Wl,-z,relro,-z,now"
@@ -224,12 +226,10 @@
linking_mode_flags {
mode: DYNAMIC
}
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/c++/7.4.0"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/x86_64-linux-gnu/c++/7.4.0"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/c++/7.4.0/backward"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/local/include"
cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/lib/llvm-6.0/lib/clang/6.0.0/include"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/x86_64-linux-gnu"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/include"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/lib/gcc/x86_64-linux-gnu/7/include"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/lib/gcc/x86_64-linux-gnu/7/include-fixed"
builtin_sysroot: ""
unfiltered_cxx_flag: "-no-canonical-prefixes"
unfiltered_cxx_flag: "-Wno-builtin-macro-redefined"
diff --git a/tools/cpp/clang_6p0/clang_6p0.BUILD b/tools/cpp/clang_6p0/clang_6p0.BUILD
index e70f8a9..ef674c9 100644
--- a/tools/cpp/clang_6p0/clang_6p0.BUILD
+++ b/tools/cpp/clang_6p0/clang_6p0.BUILD
@@ -88,13 +88,15 @@
filegroup(
name = "compiler_pieces",
srcs = glob(
- [
+ include = [
"**",
],
exclude = [
"usr/share/**",
],
- ),
+ ) + [
+ "@amd64_debian_sysroot//:sysroot_files",
+ ],
)
filegroup(
diff --git a/tools/cpp/clang_6p0/clang_more_libs/libpthread.so b/tools/cpp/clang_6p0/clang_more_libs/libpthread.so
deleted file mode 100644
index f02ce72..0000000
--- a/tools/cpp/clang_6p0/clang_more_libs/libpthread.so
+++ /dev/null
@@ -1,5 +0,0 @@
-/* GNU ld script
- Use the shared library, but some functions are only in
- the static library, so try that secondarily. */
-OUTPUT_FORMAT(elf64-x86-64)
-GROUP ( libpthread.so.0 libpthread_nonshared.a )
diff --git a/tools/cpp/static_crosstool.pb b/tools/cpp/static_crosstool.pb
index 7261677..242485b 100644
--- a/tools/cpp/static_crosstool.pb
+++ b/tools/cpp/static_crosstool.pb
@@ -107,46 +107,43 @@
tool_path { name: "strip" path: "clang_6p0/x86_64-linux-gnu-strip" }
linking_mode_flags { mode: DYNAMIC }
- compiler_flag: "--sysroot=external/clang_6p0_repo/"
+ compiler_flag: "--sysroot=external/amd64_debian_sysroot"
compiler_flag: "-nostdinc"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/x86_64-linux-gnu",
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/c++/7"
compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/lib/llvm-6.0/lib/clang/6.0.0/include",
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/x86_64-linux-gnu/c++/7"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/c++/8/backward"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/lib/gcc/x86_64-linux-gnu/8/include"
+ # We don't have anything in /usr/local/include, so don't include it here where
+ # would normally go on the default search path.
+ compiler_flag: "-isystem"
+ compiler_flag: "external/clang_6p0_repo/usr/lib/llvm-6.0/lib/clang/6.0.0/include"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include/x86_64-linux-gnu"
+ compiler_flag: "-isystem"
+ compiler_flag: "external/amd64_debian_sysroot/usr/include"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/c++/7.4.0"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/x86_64-linux-gnu/c++/7.4.0"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include/c++/7.4.0/backward"
- compiler_flag: "-isystem"
- compiler_flag: "external/clang_6p0_repo/usr/include"
-
- # TODO(bazel-team): In theory, the path here ought to exactly match the path
- # used by gcc. That works because bazel currently doesn't track files at
- # absolute locations and has no remote execution, yet. However, this will need
- # to be fixed, maybe with auto-detection?
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/c++/7.4.0"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/x86_64-linux-gnu/c++/7.4.0"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/c++/7.4.0/backward"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/local/include"
cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/lib/llvm-6.0/lib/clang/6.0.0/include"
- cxx_builtin_include_directory: "%package(@clang_6p0_repo//usr)%/include/x86_64-linux-gnu"
- cxx_flag: "-isystem"
- cxx_flag: "external/clang_6p0_repo/usr/include"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/include"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/lib/gcc/x86_64-linux-gnu/7/include"
+ cxx_builtin_include_directory: "%package(@amd64_debian_sysroot//usr)%/lib/gcc/x86_64-linux-gnu/7/include-fixed"
linker_flag: "-nodefaultlibs"
- linker_flag: "--sysroot=external/clang_6p0_repo/"
+ linker_flag: "--sysroot=external/amd64_debian_sysroot"
linker_flag: "-lstdc++"
linker_flag: "-lc"
linker_flag: "-lgcc"
linker_flag: "-lgcc_s"
linker_flag: "-Bexternal/clang_6p0_repo/usr/bin/"
linker_flag: "-Ltools/cpp/clang_6p0/clang_more_libs"
- linker_flag: "-Lexternal/clang_6p0_repo/lib/x86_64-linux-gnu"
- linker_flag: "-Lexternal/clang_6p0_repo/usr/lib/x86_64-linux-gnu"
- linker_flag: "-Lexternal/clang_6p0_repo/usr/lib/gcc/x86_64-linux-gnu"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/gcc/x86_64-linux-gnu/7/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/x86_64-linux-gnu/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/usr/lib/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/lib/x86_64-linux-gnu/"
+ linker_flag: "-Lexternal/amd64_debian_sysroot/lib/"
feature {
name: "opt"