Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import("//build/config/clang/clang.gni") | 5 import("//build/config/clang/clang.gni") |
| 6 import("//build/config/compiler/compiler.gni") | 6 import("//build/config/compiler/compiler.gni") |
| 7 import("//build/config/sanitizers/sanitizers.gni") | 7 import("//build/config/sanitizers/sanitizers.gni") |
| 8 import("//build/config/win/visual_studio_version.gni") | 8 import("//build/config/win/visual_studio_version.gni") |
| 9 import("//build/toolchain/toolchain.gni") | 9 import("//build/toolchain/toolchain.gni") |
| 10 | 10 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 95 if (is_syzyasan) { | 95 if (is_syzyasan) { |
| 96 assert(!is_win_fastlink) | 96 assert(!is_win_fastlink) |
| 97 ldflags = [ "/PROFILE" ] | 97 ldflags = [ "/PROFILE" ] |
| 98 } else { | 98 } else { |
| 99 if (!is_debug && !is_component_build) { | 99 if (!is_debug && !is_component_build) { |
| 100 if (is_win_fastlink || is_clang) { | 100 if (is_win_fastlink || is_clang) { |
| 101 # /PROFILE implies the following linker flags. Therefore if we are | 101 # /PROFILE implies the following linker flags. Therefore if we are |
| 102 # skipping /PROFILE because it is incompatible with /DEBUG:FASTLINK | 102 # skipping /PROFILE because it is incompatible with /DEBUG:FASTLINK |
| 103 # we should explicitly add these flags in order to avoid unintended | 103 # we should explicitly add these flags in order to avoid unintended |
| 104 # consequences such as larger binaries. | 104 # consequences such as larger binaries. |
| 105 ldflags = [ | 105 ldflags += [ |
|
brucedawson
2016/12/21 22:22:53
This is wrong. "+=" should only be allowed if ldfl
Wez
2016/12/22 00:03:08
Done.
| |
| 106 "/OPT:REF", | 106 "/OPT:REF", |
| 107 "/OPT:ICF", | 107 "/OPT:ICF", |
| 108 "/INCREMENTAL:NO", | 108 "/INCREMENTAL:NO", |
| 109 "/FIXED:NO", | 109 "/FIXED:NO", |
| 110 ] | 110 ] |
| 111 } else { | 111 } else { |
| 112 ldflags = [ "/PROFILE" ] | 112 ldflags = [ "/PROFILE" ] |
| 113 } | 113 } |
| 114 } | 114 } |
| 115 } | 115 } |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 config("winver") { | 205 config("winver") { |
| 206 defines = [ | 206 defines = [ |
| 207 "NTDDI_VERSION=0x0A000000", | 207 "NTDDI_VERSION=0x0A000000", |
| 208 "_WIN32_WINNT=0x0A00", | 208 "_WIN32_WINNT=0x0A00", |
| 209 "WINVER=0x0A00", | 209 "WINVER=0x0A00", |
| 210 ] | 210 ] |
| 211 } | 211 } |
| 212 | 212 |
| 213 # Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs. | 213 # Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs. |
| 214 config("sdk_link") { | 214 config("sdk_link") { |
| 215 # Treat linker warnings as errors, to avoid spammy build output. | |
| 216 ldflags = [ "/WX" ] | |
| 217 | |
| 215 if (current_cpu == "x64") { | 218 if (current_cpu == "x64") { |
| 216 ldflags = [ "/MACHINE:X64" ] | 219 ldflags += [ "/MACHINE:X64" ] |
| 217 lib_dirs = [ | 220 lib_dirs = [ |
| 218 "$windows_sdk_path\Lib\winv6.3\um\x64", | 221 "$windows_sdk_path\Lib\winv6.3\um\x64", |
| 219 "$visual_studio_path\VC\lib\amd64", | 222 "$visual_studio_path\VC\lib\amd64", |
| 220 "$visual_studio_path\VC\atlmfc\lib\amd64", | 223 "$visual_studio_path\VC\atlmfc\lib\amd64", |
| 221 ] | 224 ] |
| 222 } else { | 225 } else { |
| 223 ldflags = [ | 226 ldflags += [ |
| 224 "/MACHINE:X86", | 227 "/MACHINE:X86", |
| 225 "/SAFESEH", # Not compatible with x64 so use only for x86. | 228 "/SAFESEH", # Not compatible with x64 so use only for x86. |
| 226 "/largeaddressaware", | 229 "/largeaddressaware", |
| 227 ] | 230 ] |
| 228 lib_dirs = [ | 231 lib_dirs = [ |
| 229 "$windows_sdk_path\Lib\winv6.3\um\x86", | 232 "$windows_sdk_path\Lib\winv6.3\um\x86", |
| 230 "$visual_studio_path\VC\lib", | 233 "$visual_studio_path\VC\lib", |
| 231 "$visual_studio_path\VC\atlmfc\lib", | 234 "$visual_studio_path\VC\atlmfc\lib", |
| 232 ] | 235 ] |
| 233 } | 236 } |
| 234 } | 237 } |
| 235 | 238 |
| 236 # This default linker setup is provided separately from the SDK setup so | 239 # This default linker setup is provided separately from the SDK setup so |
| 237 # targets who want different library configurations can remove this and specify | 240 # targets who want different library configurations can remove this and specify |
| 238 # their own. | 241 # their own. |
| 239 config("common_linker_setup") { | 242 config("common_linker_setup") { |
| 240 ldflags = [ | 243 ldflags = [ |
| 244 "/WX", | |
| 241 "/FIXED:NO", | 245 "/FIXED:NO", |
| 242 "/ignore:4199", | 246 "/ignore:4199", |
| 243 "/ignore:4221", | 247 "/ignore:4221", |
| 244 "/NXCOMPAT", | 248 "/NXCOMPAT", |
| 245 ] | 249 ] |
| 246 | 250 |
| 247 ldflags += [ | 251 ldflags += [ |
|
brucedawson
2016/12/21 22:22:53
Odd that this is separate. For historical reasons
Wez
2016/12/22 00:03:08
Done.
| |
| 248 # Tell the linker to crash on failures. | 252 # Tell the linker to crash on failures. |
| 249 "/fastfail", | 253 "/fastfail", |
| 250 ] | 254 ] |
| 251 | 255 |
| 252 # ASLR makes debugging with windbg difficult because Chrome.exe and | 256 # ASLR makes debugging with windbg difficult because Chrome.exe and |
| 253 # Chrome.dll share the same base name. As result, windbg will name the | 257 # Chrome.dll share the same base name. As result, windbg will name the |
| 254 # Chrome.dll module like chrome_<base address>, where <base address> | 258 # Chrome.dll module like chrome_<base address>, where <base address> |
| 255 # typically changes with each launch. This in turn means that breakpoints in | 259 # typically changes with each launch. This in turn means that breakpoints in |
| 256 # Chrome.dll don't stick from one launch to the next. For this reason, we | 260 # Chrome.dll don't stick from one launch to the next. For this reason, we |
| 257 # turn ASLR off in debug builds. | 261 # turn ASLR off in debug builds. |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 423 | 427 |
| 424 # Internal stuff -------------------------------------------------------------- | 428 # Internal stuff -------------------------------------------------------------- |
| 425 | 429 |
| 426 # Config used by the MIDL template to disable warnings. | 430 # Config used by the MIDL template to disable warnings. |
| 427 config("midl_warnings") { | 431 config("midl_warnings") { |
| 428 if (is_clang) { | 432 if (is_clang) { |
| 429 # MIDL generates code like "#endif !_MIDL_USE_GUIDDEF_". | 433 # MIDL generates code like "#endif !_MIDL_USE_GUIDDEF_". |
| 430 cflags = [ "-Wno-extra-tokens" ] | 434 cflags = [ "-Wno-extra-tokens" ] |
| 431 } | 435 } |
| 432 } | 436 } |
| OLD | NEW |