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" ]