perfetto: update libcxx/libcxxabi/libunwind
This essentially required a rewrite of all the libcxx build rules - all
of thse rules catch up to the current state of Chrome rules (% some
small differences in our flags)
Change-Id: I90612ab32236711ea62539922e2ced42231b014f
diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
index a05f2f2..48c82ec 100644
--- a/gn/standalone/BUILD.gn
+++ b/gn/standalone/BUILD.gn
@@ -118,6 +118,7 @@
# Used in buildtools dependencies for standalone builds.
config("c++14") {
+ visibility = [ "//buildtools:llvm_demangle" ]
if (is_win) {
cflags_cc = [ "/std:c++14" ]
} else {
@@ -127,6 +128,7 @@
# Used in buildtools dependencies for standalone builds.
config("c++17") {
+ visibility = [ "//buildtools:libunwindstack" ]
if (is_win) {
cflags_cc = [ "/std:c++17" ]
} else {
@@ -134,6 +136,16 @@
}
}
+# Used in buildtools dependencies for standalone builds.
+config("c++20") {
+ visibility = [ "//buildtools:libc++config" ]
+ if (is_win) {
+ cflags_cc = [ "/std:c++20" ]
+ } else {
+ cflags_cc = [ "-std=c++20" ]
+ }
+}
+
config("visibility_hidden") {
if (!is_win) {
cflags = [ "-fvisibility=hidden" ]
diff --git a/gn/standalone/libc++/BUILD.gn b/gn/standalone/libc++/BUILD.gn
index f6b6131..49d91ba 100644
--- a/gn/standalone/libc++/BUILD.gn
+++ b/gn/standalone/libc++/BUILD.gn
@@ -32,6 +32,7 @@
"-isystem" + rebase_path("$libcxx_prefix/include", root_build_dir),
"-isystem" + rebase_path("$libcxxabi_prefix/include", root_build_dir),
]
+ include_dirs = [ "//buildtools/libcxx_config" ]
# Avoid linking both libc++ and libstdc++.
ldflags = [ "-nostdlib++" ]
diff --git a/gn/standalone/libc++/libc++.gni b/gn/standalone/libc++/libc++.gni
index c4290b2..f1802a4 100644
--- a/gn/standalone/libc++/libc++.gni
+++ b/gn/standalone/libc++/libc++.gni
@@ -40,7 +40,7 @@
# We still retain libstdc++ coverage on the CI bots by overriding
# use_custom_libcxx=false when we target a modern library (see the
# GCC target in infra/ci/config.py).
- use_custom_libcxx = is_linux && is_clang && !is_wasm
+ use_custom_libcxx = is_linux && is_hermetic_clang && !is_wasm
custom_libcxx_is_static = !using_sanitizer
}