Merge "typo: the the -> the"
diff --git a/BUILD.gn b/BUILD.gn
index 0fab609..fe44ed2 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -124,7 +124,6 @@
 # compile-time checks for the CI.
 if (perfetto_build_standalone) {
   all_targets += [
-    "src/tracebox",
     "test/configs",
 
     # For syntax-checking the proto.
@@ -145,6 +144,9 @@
   if (is_linux || is_android) {
     all_targets += [ "src/tracing/consumer_api_deprecated:consumer_api_test" ]
   }
+  if (is_linux || is_android || is_mac) {
+    all_targets += [ "src/tracebox" ]
+  }
 }
 
 # The CTS code is built (but not ran) also in standalone builds. This is to
diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
index 31941ed..ffe5725 100644
--- a/gn/standalone/BUILD.gn
+++ b/gn/standalone/BUILD.gn
@@ -209,10 +209,10 @@
     ldflags += [ "-flto=full" ]
   }
 
-  # We support only x64 builds on Windows.
-  assert(!is_win || current_cpu == "x64")
-
-  if (current_cpu == "arm") {
+  if (is_win) {
+    # We support only x86/x64 builds on Windows.
+    assert(current_cpu == "x64" || current_cpu == "x86")
+  } else if (current_cpu == "arm") {
     cflags += [
       "-march=armv7-a",
       "-mfpu=neon",
diff --git a/gn/standalone/toolchain/BUILD.gn b/gn/standalone/toolchain/BUILD.gn
index d7f54db..ca8f247 100644
--- a/gn/standalone/toolchain/BUILD.gn
+++ b/gn/standalone/toolchain/BUILD.gn
@@ -376,10 +376,7 @@
 toolchain("msvc") {
   lib_switch = ""
   lib_dir_switch = "/LIBPATH:"
-
-  sys_lib_flags = "/LIBPATH:\"${win_sdk_lib_dir}\\ucrt\\x64\" "
-  sys_lib_flags += "/LIBPATH:\"${win_sdk_lib_dir}\\um\\x64\" "
-  sys_lib_flags += "/LIBPATH:\"${win_msvc_lib_dir}\" "
+  sys_lib_flags = string_join(" ", win_msvc_sys_lib_flags)
 
   # Note: /showIncludes below is required for ninja, to build a complete
   # dependency graph for headers. Removing it breaks incremental builds.
diff --git a/gn/standalone/toolchain/msvc.gni b/gn/standalone/toolchain/msvc.gni
index 34c0a50..7ec7313 100644
--- a/gn/standalone/toolchain/msvc.gni
+++ b/gn/standalone/toolchain/msvc.gni
@@ -36,22 +36,28 @@
 
   # These variables are required both for clang-cl.exe and MSVC (cl.exe).
   win_sdk_lib_dir = _win_sdk_base + "\\Lib\\" + _win_sdk_ver
-  win_msvc_lib_dir = _win_msvc_base + "\\lib\\x64"
+  win_msvc_lib_dir = _win_msvc_base + "\\lib\\${target_cpu}"
 
   # These variables are only required when building with MSVC.
   # Clang is clever enough to figure out the right include path by querying the
   # registry and detect the Windows SDK path (it still needs the /LIBPATH
   # though, hence the _lib_dir above).
-  win_msvc_bin_dir = _win_msvc_base + "\\bin\\Hostx64\\x64"
+  win_msvc_bin_dir = _win_msvc_base + "\\bin\\Host${host_cpu}\\${target_cpu}"
   win_msvc_inc_dirs = [
     _win_msvc_base + "\\include",
     _win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\ucrt",
     _win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\um",
     _win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\shared",
   ]
+  win_msvc_sys_lib_flags = [
+    "/LIBPATH:\"${win_sdk_lib_dir}\\ucrt\\${target_cpu}\"",
+    "/LIBPATH:\"${win_sdk_lib_dir}\\um\\${target_cpu}\"",
+    "/LIBPATH:\"${win_msvc_lib_dir}\"",
+  ]
 } else {
   win_sdk_lib_dir = ""
   win_msvc_lib_dir = ""
   win_msvc_bin_dir = ""
   win_msvc_inc_dirs = []
+  win_msvc_sys_lib_flags = []
 }
diff --git a/src/tracing/BUILD.gn b/src/tracing/BUILD.gn
index 848751e..b2eb293 100644
--- a/src/tracing/BUILD.gn
+++ b/src/tracing/BUILD.gn
@@ -159,10 +159,15 @@
       ":client_api_without_backends",
       ":platform_impl",
     ]
-    sources += [
-      "traced_proto_unittest.cc",
-      "traced_value_unittest.cc",
-    ]
+
+    # TODO(primiano/altimin): these sources build with clang-cl but fail to
+    # build with MSVC 2019. Investigate.
+    if (!is_win || is_clang) {
+      sources += [
+        "traced_proto_unittest.cc",
+        "traced_value_unittest.cc",
+      ]
+    }
   }
 }
 
diff --git a/src/tracing/platform_windows.cc b/src/tracing/platform_windows.cc
index 651812a..f5db52d 100644
--- a/src/tracing/platform_windows.cc
+++ b/src/tracing/platform_windows.cc
@@ -164,7 +164,7 @@
 #else  // _WIN64
 
 #pragma data_seg(".CRT$XLP")
-PIMAGE_TLS_CALLBACK perfetto_thread_callback_base = OnThreadExit;
+PIMAGE_TLS_CALLBACK perfetto_thread_callback_base = PerfettoOnThreadExit;
 // Reset the default section.
 #pragma data_seg()