@@ -43,8 +43,6 @@ declare_args() {
4343 use_clang_diagnostics_format = false
4444
4545 # Indicates whether to use /pdbpagesize:8192 to allow PDBs larger than 4 GiB.
46- # This requires updated debugging and profiling tools which are not widely
47- # distributed yet which is why it is currently opt-in.
4846 use_large_pdbs = false
4947
5048 use_msvcr14x = false
@@ -179,7 +177,10 @@ config("compiler") {
179177 if (use_large_pdbs ) {
180178 # This allows PDBs up to 8 GiB in size. This requires lld-link.exe or
181179 # link.exe from VS 2022 or later.
182- ldflags += [ " /pdbpagesize:8192" ]
180+ if (! defined (configs )) {
181+ configs = []
182+ }
183+ configs += [ " :pdb_larger_than_4gb" ]
183184 }
184185
185186 if (! is_debug && ! is_component_build ) {
@@ -293,10 +294,7 @@ config("runtime_library") {
293294 }
294295}
295296
296- # Chromium supports running on Windows 7, but if these constants are set to
297- # Windows 7, then newer APIs aren't made available by the Windows SDK.
298- # So we set this to Windows 10 and then are careful to check at runtime
299- # to only call newer APIs when they're available.
297+ # Chromium only supports Windowes 10+.
300298# Some third-party libraries assume that these defines set what version of
301299# Windows is available at runtime. Targets using these libraries need to
302300# manually override this config for their compiles.
@@ -623,3 +621,15 @@ config("lean_and_mean") {
623621config (" nominmax" ) {
624622 defines = [ " NOMINMAX" ]
625623}
624+
625+ # Some binaries create PDBs larger than 4 GiB. Increasing the PDB page size
626+ # to 8 KiB allows 8 GiB PDBs. The larger page size also allows larger block maps
627+ # which is a PDB limit that was hit in https://crbug.com/1406510. The page size
628+ # can easily be increased in the future to allow even larger PDBs or larger
629+ # block maps.
630+ config (" pdb_larger_than_4gb" ) {
631+ if (! defined (ldflags )) {
632+ ldflags = []
633+ }
634+ ldflags += [ " /pdbpagesize:8192" ]
635+ }
0 commit comments