Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: build/common.gypi

Issue 1432133002: build: Add Windows port of LLVM LTO config. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use lld-link /lib instead of llvm-lib; use /llvmlibthin for thin archives Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 # IMPORTANT: 5 # IMPORTANT:
6 # Please don't directly include this file if you are building via gyp_chromium, 6 # Please don't directly include this file if you are building via gyp_chromium,
7 # since gyp_chromium is automatically forcing its inclusion. 7 # since gyp_chromium is automatically forcing its inclusion.
8 { 8 {
9 # Variables expected to be overriden on the GYP command line (-D) or by 9 # Variables expected to be overriden on the GYP command line (-D) or by
10 # ~/.gyp/include.gypi. 10 # ~/.gyp/include.gypi.
(...skipping 5984 matching lines...) Expand 10 before | Expand all | Expand 10 after
5995 'make_global_settings': [ 5995 'make_global_settings': [
5996 # On Windows, gyp's ninja generator only looks at CC. 5996 # On Windows, gyp's ninja generator only looks at CC.
5997 ['CC', '<(make_clang_dir)/bin/clang-cl'], 5997 ['CC', '<(make_clang_dir)/bin/clang-cl'],
5998 ], 5998 ],
5999 }], 5999 }],
6000 ['use_lld==1 and OS=="win"', { 6000 ['use_lld==1 and OS=="win"', {
6001 'make_global_settings': [ 6001 'make_global_settings': [
6002 # Limited to Windows because lld-link is the driver that is 6002 # Limited to Windows because lld-link is the driver that is
6003 # compatible with link.exe. 6003 # compatible with link.exe.
6004 ['LD', '<(make_clang_dir)/bin/lld-link'], 6004 ['LD', '<(make_clang_dir)/bin/lld-link'],
6005 # lld-link includes a replacement for lib.exe that can produce thin
6006 # archives and understands bitcode (for use_lto==1).
6007 ['AR', '<(make_clang_dir)/bin/lld-link /lib /llvmlibthin'],
6005 ], 6008 ],
6006 }], 6009 }],
6007 ['OS=="android" and clang==0', { 6010 ['OS=="android" and clang==0', {
6008 # Hardcode the compiler names in the Makefile so that 6011 # Hardcode the compiler names in the Makefile so that
6009 # it won't depend on the environment at make time. 6012 # it won't depend on the environment at make time.
6010 'make_global_settings': [ 6013 'make_global_settings': [
6011 ['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'], 6014 ['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'],
6012 ['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'], 6015 ['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'],
6013 ['CC.host', '<(host_cc)'], 6016 ['CC.host', '<(host_cc)'],
6014 ['CXX.host', '<(host_cxx)'], 6017 ['CXX.host', '<(host_cxx)'],
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
6080 }], 6083 }],
6081 ['use_lto==1 and clang==1', { 6084 ['use_lto==1 and clang==1', {
6082 'target_defaults': { 6085 'target_defaults': {
6083 'target_conditions': [ 6086 'target_conditions': [
6084 ['_toolset=="target"', { 6087 ['_toolset=="target"', {
6085 'arflags': [ 6088 'arflags': [
6086 '--plugin', '../../<(make_clang_dir)/lib/LLVMgold.so', 6089 '--plugin', '../../<(make_clang_dir)/lib/LLVMgold.so',
6087 ], 6090 ],
6088 }], 6091 }],
6089 ], 6092 ],
6093 'msvs_settings': {
6094 'VCCLCompilerTool': {
6095 'AdditionalOptions': [
6096 # TODO(pcc): Add LTO support to clang-cl driver and use it here.
6097 '-Xclang',
6098 '-emit-llvm-bc',
6099 ],
6100 },
6101 },
6090 }, 6102 },
6091 }], 6103 }],
6092 # Apply a lower LTO optimization level as the default is too slow. 6104 # Apply a lower LTO optimization level as the default is too slow.
6093 ['use_lto==1 and clang==1', { 6105 ['use_lto==1 and clang==1', {
6094 'target_defaults': { 6106 'target_defaults': {
6095 'target_conditions': [ 6107 'target_conditions': [
6096 ['_toolset=="target"', { 6108 ['_toolset=="target"', {
6097 'ldflags': [ 6109 'ldflags': [
6098 '-Wl,--plugin-opt,O1', 6110 '-Wl,--plugin-opt,O1',
6099 ], 6111 ],
6100 }], 6112 }],
6101 ['_toolset=="target" and _type!="static_library"', { 6113 ['_toolset=="target" and _type!="static_library"', {
6102 'xcode_settings': { 6114 'xcode_settings': {
6103 'OTHER_LDFLAGS': [ 6115 'OTHER_LDFLAGS': [
6104 '-Wl,-mllvm,-O1', 6116 '-Wl,-mllvm,-O1',
6105 ], 6117 ],
6106 }, 6118 },
6107 }], 6119 }],
6108 ], 6120 ],
6121 'msvs_settings': {
6122 'VCLinkerTool': {
6123 'AdditionalOptions': [
6124 '/opt:lldlto=1',
6125 ],
6126 },
6127 },
6109 }, 6128 },
6110 }], 6129 }],
6111 ['use_lto==1 and clang==1 and target_arch=="arm"', { 6130 ['use_lto==1 and clang==1 and target_arch=="arm"', {
6112 'target_defaults': { 6131 'target_defaults': {
6113 'target_conditions': [ 6132 'target_conditions': [
6114 ['_toolset=="target"', { 6133 ['_toolset=="target"', {
6115 # Without this flag, LTO produces a .text section that is larger 6134 # Without this flag, LTO produces a .text section that is larger
6116 # than the maximum call displacement, preventing the linker from 6135 # than the maximum call displacement, preventing the linker from
6117 # relocating calls (http://llvm.org/PR22999). 6136 # relocating calls (http://llvm.org/PR22999).
6118 'ldflags': [ 6137 'ldflags': [
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
6308 # settings in target dicts. SYMROOT is a special case, because many other 6327 # settings in target dicts. SYMROOT is a special case, because many other
6309 # Xcode variables depend on it, including variables such as 6328 # Xcode variables depend on it, including variables such as
6310 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 6329 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
6311 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 6330 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
6312 # files to appear (when present) in the UI as actual files and not red 6331 # files to appear (when present) in the UI as actual files and not red
6313 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 6332 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
6314 # and therefore SYMROOT, needs to be set at the project level. 6333 # and therefore SYMROOT, needs to be set at the project level.
6315 'SYMROOT': '<(DEPTH)/xcodebuild', 6334 'SYMROOT': '<(DEPTH)/xcodebuild',
6316 }, 6335 },
6317 } 6336 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698