1--- src/3rdparty/chromium/build/linux/unbundle/icu.gn.orig	2025-08-15 18:30:00 UTC
2+++ src/3rdparty/chromium/build/linux/unbundle/icu.gn
3@@ -17,6 +17,15 @@ config("icu_config") {
4     "USING_SYSTEM_ICU=1",
5     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
6
7+    # As of icu 73 C++ nullptr, char16_t, override, final and noexcept are used
8+    # instead of defines. These definitions can be removed when the bundled icu
9+    # gets updated to 73. For more details, see:
10+    # https://unicode-org.atlassian.net/browse/ICU-21833 and
11+    # https://github.com/unicode-org/icu/commit/28643799377ecf654564f6f31854b02788cebe33
12+    "U_FINAL=final",
13+    "U_NOEXCEPT=noexcept",
14+    "U_OVERRIDE=override",
15+
16     # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
17     # on classes through the U_COMMON_API and U_I18N_API macros (among others).
18     # When linking against the system ICU library, we want its symbols to have
19@@ -34,6 +43,9 @@ config("icu_config") {
20     # to define U_IMPORT to have the same value as U_EXPORT. For more details,
21     # please see: https://crbug.com/822820
22     "U_IMPORT=U_EXPORT",
23+
24+    # Unbreak with icu 76 where private symbols are picked up
25+    "U_HIDE_DRAFT_API",
26   ]
27 }
28
29@@ -46,6 +58,14 @@ source_set("icui18n") {
30 }
31
32 source_set("icui18n") {
33+  deps = [ ":icui18n_shim" ]
34+  public_configs = [
35+    ":icu_config",
36+    ":system_icui18n",
37+  ]
38+}
39+
40+source_set("icui18n_hidden_visibility") {
41   deps = [ ":icui18n_shim" ]
42   public_configs = [
43     ":icu_config",
44