Граф коммитов

490 Коммитов

Автор SHA1 Сообщение Дата
Takuto Ikuta a73dc046b2 win: check drive letter before relativize include path
Bug: 847738
Change-Id: I49a8cbcaad484f8044a0196901b8cf6140b39388
Reviewed-on: https://chromium-review.googlesource.com/1080357
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#563148}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3bee3633680db062b91d1d36e2911f13572284ed
2018-05-31 04:06:48 +00:00
Takuto Ikuta 10a93c2ce7 Relativize include dir for windows build
When we use relativized include dir, /showIncludes shows relativized
path for the files in include dir.

This is an effort of removing absolute path from compiling output.

Bug: 439949
Change-Id: I056cd8bb08c10f01855ef3bdb56ea1bcce1b769b
Reviewed-on: https://chromium-review.googlesource.com/1075947
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#562599}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bed53c80fd3aa103d419bae8523beddbd89d679f
2018-05-29 21:35:45 +00:00
Nico Weber 7ca383cda4 Set use_lld = false in nacl toolchains and reland "Let lld emit colored diagnostics when invoked from ninja."
This reverts commit 18da5f23138a86e9142cbebc5b0ef44291d9569a.

Reason for revert: The original commit broke the CFI bot with errors like:

  src/native_client/toolchain/linux_x86/pnacl_newlib/bin/../x86_64-nacl/bin/ld:
      unrecognized option '--color-diagnostics'

I do not know why this only happened on the CFI bot (XXX), but since we only add
-fuse-ld=lld if !is_nacl, we should set use_lld to false in the nacl toolchains,
which fixes this, and probably many future issues like it.

Original change's description:
> Revert "Let lld emit colored diagnostics when invoked from ninja."
>
> This reverts commit 00db3ddc4c4f9ebd4d95ad44ea4ef74415c66394.
>
> Reason for revert: Breaks Linux CFI build here: https://ci.chromium.org/buildbot/chromium.memory/Linux%20CFI/8024
>
> Original change's description:
> > Let lld emit colored diagnostics when invoked from ninja.
> >
> > Bug: 841221
> > Change-Id: I72d13c78a2c623865a4f29542d25f6b3488b350b
> > Reviewed-on: https://chromium-review.googlesource.com/1067460
> > Reviewed-by: Reid Kleckner <rnk@chromium.org>
> > Commit-Queue: Nico Weber <thakis@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#560343}
>
> TBR=thakis@chromium.org,rnk@chromium.org
>
> Change-Id: I3811083daa622dca605ca32be5cc4c7098b60b4a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 841221
> Reviewed-on: https://chromium-review.googlesource.com/1067949
> Reviewed-by: Tommy Li <tommycli@chromium.org>
> Commit-Queue: Tommy Li <tommycli@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#560345}

TBR=thakis@chromium.org,rnk@chromium.org,tommycli@chromium.org

Change-Id: I5d4c9298e3613ab84650f081a59715880d780805
Bug: 841221
Reviewed-on: https://chromium-review.googlesource.com/1068218
Commit-Queue: Reid Kleckner <rnk@chromium.org>
Reviewed-by: Reid Kleckner <rnk@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#560676}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 979ca1f97abdc13a5bd9605ca5bfd21cae211c42
2018-05-22 17:28:20 +00:00
Bruce Dawson 2273e4bf46 Reland "Switch to VS 2017 15.7.1 with 10.0.17134.0 SDK"
This is a reland of 5a7f3c442684be5eeb244b904bbfc8e6edaf6fda

goma now supports this compiler and the new warnings were dealt with.

Original change's description:
> Switch to VS 2017 15.7.1 with 10.0.17134.0 SDK
>
> This change switches the VS 2017 package to use VS 2017 Update 7.1 while
> using the 10.0.17134.12 SDK. The new SDK is needed to support new HDR
> features, and to stop forcing external developers to install an old
> ([Spring] Creators Update) SDK. This change will also bring in a new
> linker and other build tools, but the version of clang-cl will be
> unchanged.
>
> Packaging was done on a Windows Server 2016 VM, cleanly created for this
> purpose.
>
> Compiler was packaged up by downloading VS 2017 Update 7.1, from
> https://www.visualstudio.com/vs/, and then passing these parameters to
> the installer:
>
>     --add Microsoft.VisualStudio.Workload.NativeDesktop
>     --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended
>     --passive
>
> Then Add or Remove Programs was used to modify the 10.0.17134.0 SDK to add
> the Debuggers package.
>
> Then the packaging script was run like this:
>
>   python depot_tools\win_toolchain\package_from_installed.py 2017 -w 10.0.17134.0
>
> Bug: 773476
> Change-Id: Ic819f3ae79d7e869227bf33fbb8d202e2f57039b
> Reviewed-on: https://chromium-review.googlesource.com/1054027
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#559033}

Bug: 773476,834213
Change-Id: I903158f9dfa604f250010a7047496509f51782e7
Reviewed-on: https://chromium-review.googlesource.com/1066130
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#560002}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 82a5f004e0e52897a6e8bac10490a14fc2845625
2018-05-18 20:05:49 +00:00
Bruce Dawson aa787a64fe Revert "Switch to VS 2017 15.7.1 with 10.0.17134.0 SDK"
This reverts commit 5a7f3c442684be5eeb244b904bbfc8e6edaf6fda.

Reason for revert: this breaks v8's VC++ goma builds, reverting until
goma is updated to support this compiler

Original change's description:
> Switch to VS 2017 15.7.1 with 10.0.17134.0 SDK
> 
> This change switches the VS 2017 package to use VS 2017 Update 7.1 while
> using the 10.0.17134.12 SDK. The new SDK is needed to support new HDR
> features, and to stop forcing external developers to install an old
> ([Spring] Creators Update) SDK. This change will also bring in a new
> linker and other build tools, but the version of clang-cl will be
> unchanged.
> 
> Packaging was done on a Windows Server 2016 VM, cleanly created for this
> purpose.
> 
> Compiler was packaged up by downloading VS 2017 Update 7.1, from
> https://www.visualstudio.com/vs/, and then passing these parameters to
> the installer:
> 
>     --add Microsoft.VisualStudio.Workload.NativeDesktop
>     --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended
>     --passive
> 
> Then Add or Remove Programs was used to modify the 10.0.17134.0 SDK to add
> the Debuggers package.
> 
> Then the packaging script was run like this:
> 
>   python depot_tools\win_toolchain\package_from_installed.py 2017 -w 10.0.17134.0
> 
> Bug: 773476
> Change-Id: Ic819f3ae79d7e869227bf33fbb8d202e2f57039b
> Reviewed-on: https://chromium-review.googlesource.com/1054027
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#559033}

TBR=thakis@chromium.org,dpranke@chromium.org,hubbe@chromium.org,brucedawson@chromium.org

Change-Id: Ib8e84084a9717dafa6616f132b4824d93cbf39bf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 773476
Reviewed-on: https://chromium-review.googlesource.com/1063810
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#559471}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7ad7e759dd35a114375a671f02669c9a0283bea1
2018-05-17 09:35:36 +00:00
Bruce Dawson 74bdaa2547 Switch to VS 2017 15.7.1 with 10.0.17134.0 SDK
This change switches the VS 2017 package to use VS 2017 Update 7.1 while
using the 10.0.17134.12 SDK. The new SDK is needed to support new HDR
features, and to stop forcing external developers to install an old
([Spring] Creators Update) SDK. This change will also bring in a new
linker and other build tools, but the version of clang-cl will be
unchanged.

Packaging was done on a Windows Server 2016 VM, cleanly created for this
purpose.

Compiler was packaged up by downloading VS 2017 Update 7.1, from
https://www.visualstudio.com/vs/, and then passing these parameters to
the installer:

    --add Microsoft.VisualStudio.Workload.NativeDesktop
    --add Microsoft.VisualStudio.Component.VC.ATLMFC --includeRecommended
    --passive

Then Add or Remove Programs was used to modify the 10.0.17134.0 SDK to add
the Debuggers package.

Then the packaging script was run like this:

  python depot_tools\win_toolchain\package_from_installed.py 2017 -w 10.0.17134.0

Bug: 773476
Change-Id: Ic819f3ae79d7e869227bf33fbb8d202e2f57039b
Reviewed-on: https://chromium-review.googlesource.com/1054027
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#559033}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5a7f3c442684be5eeb244b904bbfc8e6edaf6fda
2018-05-16 10:55:30 +00:00
Tom Anderson 9cfcd1cf68 Enable thin archives for ChromeOS builds
LLVM has been updated in the ChromeOS sysroot, so it should be safe to enable
thin archives now.

BUG=801925

Change-Id: I7dc2492937a26adc4f9af61abccbdb086e3a38cb
Reviewed-on: https://chromium-review.googlesource.com/1050980
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#557336}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1ed851337f4781d2504bdcc03f11d1ffb5526a3a
2018-05-09 22:01:13 +00:00
Ken Rockot af60ab72c0 Fix linux OS check for generate_linker_map
This was changed by r554983, which really should have only changed the
android OS check, as Linux builds also need to support NaCl toolchains
where current_os != "linux".

Bug: 822034
Change-Id: I5ca924516158bdd6228b947f32db6b614d1caacd
Reviewed-on: https://chromium-review.googlesource.com/1038430
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#555228}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c77b371695be9335ffe86608871d9dc2fd537d8a
2018-05-01 23:33:34 +00:00
Ken Rockot a192baf56b Build 32- and 64-bit Android mojo_core for Chrome OS distribution
This is an unmodified reland of r554617 after fixing cases where
target_os=["chromeos"] was not set in some Chrome OS builders'
gclient configs.

Causes Chrome builds for Chrome OS to emit additional 32-bit and
64-bit copies of the mojo_core shared library built against the
Android toolchain, for use from within the ARC++ container.

In order to support building these library targets, this also
modifies DEPS to include a minimal set of required Android support
tools and libraries in chromeos checkouts.

Bug: 822034
Change-Id: I0e6ae87a1b9da80b82c40fd637a5be07dd7b8272
Reviewed-on: https://chromium-review.googlesource.com/1035619
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#554983}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 027d7fa1c191f60f754985b9c235597f8c9a2081
2018-05-01 03:10:06 +00:00
Robin Raymond 8c075578bb Win host toolchain incorrectly assumes target_cpu for arm cpu target.
The original patchset has a minor flaw in building for UWP unrelated to the changes made in the original CL itself. $target_cpu is used in "host" toolset instead of $host_cpu and when building an arm target it causes issues as it can't build host tools.

Fixes an error introduced in crrev.com/c/923161

R=brucedawson@chromium.org, dpranke@chromium.org, phoglund@chromium.org

Bug: 812814
Change-Id: Ia6e7f1dc2b5494e212d67b99a119e023a1308c25
Reviewed-on: https://chromium-review.googlesource.com/1022493
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#554707}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 86ac3fe7e3327a67ba131764738ed5cdb3685fff
2018-04-30 08:29:23 +00:00
Abhishek Arya 725734cd9c Revert "Build 32- and 64-bit Android mojo_core for Chrome OS distribution"
This reverts commit 58eabf0b4f69f136629286538c31c10e9375c51c.

Reason for revert: Broke ChromeOS ASan builder

Original change's description:
> Build 32- and 64-bit Android mojo_core for Chrome OS distribution
> 
> Causes Chrome builds for Chrome OS to emit additional 32-bit and
> 64-bit copies of the mojo_core shared library built against the
> Android toolchain, for use from within the ARC++ container.
> 
> In order to support building these library targets, this also
> modifies DEPS to include a minimal set of required Android support
> tools and libraries in chromeos checkouts.
> 
> Bug: 822034
> Change-Id: I219837de3076490cdea8315e6cc98c5432871ea0
> Reviewed-on: https://chromium-review.googlesource.com/1026203
> Commit-Queue: Ken Rockot <rockot@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#554617}

TBR=rockot@chromium.org,dpranke@chromium.org

Change-Id: I2e2b0d3500aa948f15ec7cf0ff024f7a82fd719d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 822034
Reviewed-on: https://chromium-review.googlesource.com/1033369
Reviewed-by: Abhishek Arya <inferno@chromium.org>
Commit-Queue: Abhishek Arya <inferno@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#554632}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9591f2badbd80682049c16a00df7df1625fce19e
2018-04-28 06:17:55 +00:00
Ken Rockot fb6dc3aba5 Build 32- and 64-bit Android mojo_core for Chrome OS distribution
Causes Chrome builds for Chrome OS to emit additional 32-bit and
64-bit copies of the mojo_core shared library built against the
Android toolchain, for use from within the ARC++ container.

In order to support building these library targets, this also
modifies DEPS to include a minimal set of required Android support
tools and libraries in chromeos checkouts.

Bug: 822034
Change-Id: I219837de3076490cdea8315e6cc98c5432871ea0
Reviewed-on: https://chromium-review.googlesource.com/1026203
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#554617}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 58eabf0b4f69f136629286538c31c10e9375c51c
2018-04-28 03:01:04 +00:00
Nico Weber 7ee3840aa6 win: Use stamp tool that's 6x as fast and that uses 25% as much ram per stamp.
Bug: 787903
Change-Id: Ia29658bf8a04ffe6ae8e32530726e217781bb3d1
Reviewed-on: https://chromium-review.googlesource.com/1031317
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#554244}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e99409faacc8b42cc3130cc3f1c3006afac4484b
2018-04-27 01:00:14 +00:00
Takuto Ikuta ec20336771 Revert "Add disable_goma for args.gn on win"
This reverts commit 953fcf3fe08d99068f2a4b39081a2ab55dae178a.

Reason for revert: We want to set envvar directly.

Original change's description:
> Add disable_goma for args.gn on win
>
> Switching use_goma causes full rebuild due to command line update in build.ninja.
> I added disable_goma to set GOMA_DISABLED on environment.{x86,x64}.
>
> If we specify disable_goma=true, GOMA_DISABLED env is passed to gomacc.
> Then gomacc executes given argument instead of sending args to goma daemon.
>
> This will help toolchain maintainer to check difference of build behavior w/wo goma without rebuilding everything.
>
> Bug:
> Change-Id: Ie58958b5484d57be1c40fbbca363f1eef4b55c7e
> Reviewed-on: https://chromium-review.googlesource.com/768549
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#518134}

TBR=dpranke@chromium.org,brucedawson@chromium.org,tikuta@chromium.org

Change-Id: Ia2d510f4149b30cff3f8dc6c0b89e37190c39368
Reviewed-on: https://chromium-review.googlesource.com/1015860
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#551602}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ee4c20c2074018c75d297647820d1d58f82fd7c9
2018-04-18 07:04:17 +00:00
Fabrice de Gans-Riberi 19a9832197 Stop setting is_posix for Fuchsia.
This sets is_posix to false for the Fuchsia build as it will rely less
and less on the POSIX implementation. Follow-up CLs will clean up build
files from redundant checks and stop including _posix files by default.

Bug: 812974
Change-Id: I6dc625ba2d4919a775041b1516e051b471c50e97
Reviewed-on: https://chromium-review.googlesource.com/987377
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#550292}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9fba3affd0a3246f2ec851c5f83cc3588a379086
2018-04-12 19:00:48 +00:00
Tom Anderson 4961ea0d66 Enable thin archive builds on POSIX.
With the following gn args:
use_goma = true
is_debug = false
is_component_build = false

Reduces the size of the out directory from 2.4G to 1.8G and reduces
build time from 1m36s to 1m20s.

BUG=801925,829956

Change-Id: Ie426ae7b16385a166147bcb149694df7c93c2e14
Reviewed-on: https://chromium-review.googlesource.com/978648
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#548918}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 40a8d84a54ac47d3299194c5377aebd71714f1f0
2018-04-06 20:34:58 +00:00
Nico Weber 7f8536efdc Stop passing --rsp-quoting to clang-cl.
We no longer use rsp files for compiles as of
https://chromium-review.googlesource.com/832593

Bug: 796021
Change-Id: I2ffb54f5bf2a596025af9a43d9e06fd992234f48
Reviewed-on: https://chromium-review.googlesource.com/997994
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#548475}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 74612b2ba5df3042eca38da71223f2a22114ba40
2018-04-05 17:47:33 +00:00
Mirko Bonadei a27ceccabb Do not lowercase paths in _ExtractImportantEnvironment (win toolchain).
This creates problems when running on a case sensitive file system.

When the path of a checkout contains uppercase characters, the
following command fails:

$ gn gen out/win64 --args='target_os="win" target_cpu="x64"'
ERROR at //build/config/win/BUILD.gn:338:27: Script returned non-zero exit code.
vcvars_toolchain_data = exec_script("../../toolchain/win/setup_toolchain.py",
.... src/build/toolchain/win/setup_toolchain.py", line 240, in main
  assert vc_bin_dir
AssertionError

Bug: None
Change-Id: If4c792e9d04d56987a87a55e824d764a1c4e62ed
Reviewed-on: https://chromium-review.googlesource.com/985835
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#547994}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4e699af35744098fc7949942301c9baa1943c162
2018-04-04 06:06:27 +00:00
Yngve N. Pettersen 42d76b3d47 GN: Improve bootstrap for Windows
Improve bootstrap for Windows and allow bootstrap to work in specified
target directory. Additionally, some fixes made to project generation,
and for Linux.

R=dpranke@chromium.org

Change-Id: Ied7f99d3cb83559fbde597cb707b46fcb3e98dc4
Reviewed-on: https://chromium-review.googlesource.com/941214
Commit-Queue: Yngve Pettersen <yngve@vivaldi.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#547867}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 73b7854e6d4c7a186047809aacb9ce1478277c7a
2018-04-03 23:35:08 +00:00
tzik 901af7578f Use ';' as the path separator in setup_toolchain.py on Windows cross build
On cross build of Windows Chrome on Linux, path detections in
setup_toolchain.py fail due to path separator mismatch.

https://chromium-review.googlesource.com/c/chromium/src/+/923161
broke the win/cross build, this fixes it.

Bug: 495204
Change-Id: I1fe5405ce956b8e7522958704c012000df42966e
Reviewed-on: https://chromium-review.googlesource.com/980392
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#545784}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1337ce842367e0bd9aec9d919d2e7c08592a0daa
2018-03-26 14:36:21 +00:00
Robin Raymond 3f91e89a37 WinUWP store application support is out of date
This is required to support building Microsoft's WinUWP store
application version of WebRTC.

vs_toolchain.py
- needed to perform environment variable expansion for "Program
Files(x86)" to correctly identify Visual Studio installation location

config/BUILD.gn
- remove delayimp.lib, kernel32.lib and ole32.lib from store
applications (instead requires dloadhelper.lib/WindowsApp.lib
must be used)

BUILDCONFIG.gn
- Do not use clang when compiling Windows UWP targets;
- Added declare_args for is_target_winuwp rather and stripped multi
defined variations of the host_os/current_os == "winrt_10", "winrt_81",
"winrt_81_phone" that heavily polluted the platform / target selections
(as the current targeting methodology is incorrect anyway). The
host_os/current_os is always be "win" and only the target should be
Windows UWP / store applications based on the target_os == "winuwp"
rather than all the flavors of UWP.
- Added filter for _winuwp source files (separate from just windows)
- Added default configs for desktop vs store applications to correctly set
the defines according to the desktop vs store targets

config/win/BUILD.gn
- The Windows UWP versioning assumes to be Windows 10 / store
app now although a updated GN allows for targeting older Windows UWP
versions/SDKs/device families. This allows the definitions for the
various application support versioning and application families required
for UWP to be set.
- The linker calls vsvarsall.bat to be executed via
toolchain/win/setup_toolchain.py in order to correctly identify the
correct linker library path information for Windows store SDK targets.
The hard coded and assumed library paths are fixed in all cases to be
discovered from the tooling for forward future platform support in all
cases.
- Added ARM linkage definitions for the Windows ARM CPU required for
properly targeting all three CPUs (x86, x64, arm) for universal store
binaries.
- Added the proper family C++/C defines required to target the various
Windows store application types currently offered for Windows UWP store
applications.

toolchain/win/BUILD.gn
- The name to support the storage of the environment variables now is
passed into the setup script to allow for easier extension of the
CPUs and target combinations (arm, x64, x86 in the desktop vs store
variations)
- "desktop" vs "store" is now specified the setup for the
correct toolchain targeting
- Sets true/false for is_target_winuwp is dependent on the toolchain
activated (so configurations will be set correctly when the toolchain is
specified for host tool targets required for build tools vs finalized
application targets)
- Cleaned up the Windows RT section to properly support Windows UWP
toolchains

toolchain/win/setup_toolchain.py
- the setup was missing the arm CPU for universal binaries required for
the UWP platform
- The calling of vcvarsall.bat was missing the "store" option for store
applications and all the CPU offered
- Added returning of linker paths by searching the library environments
for well-known library files expected in each of the 3 library paths
required "lib", "um" and "atlmfc"

R=phoglund@google.com

Bug: 812814
Change-Id: If1a6b1b1bc3ed940fc8e2ce726ac016e2491e61d
Reviewed-on: https://chromium-review.googlesource.com/923161
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#545751}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c5686578e8f519eeec50f574b284fbc12e6e15d8
2018-03-26 10:07:40 +00:00
Rob Percival 30bf2a3994 Remove reference to crbug.com/695243 from clang_static_analyzer_wrapper
This bug has been archived with a message instructing people to report bugs to
https://bugs.llvm.org/.

BUG=695243

Change-Id: I5c6655d52797d41229435788632887908f7cb2af
Reviewed-on: https://chromium-review.googlesource.com/973441
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Rob Percival <robpercival@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#544831}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 248c8d1ddfb6783f558b191115a33be8bc617564
2018-03-21 20:46:52 +00:00
Shinya Kawanaka bf2e5040c5 Use -filelist for libtool
"Mac Builder Goma Canary" builder is failing with "Argument list
too long". The length of command line exceeds 220K, so it's
actually long.

Though libtool on Mac does not support @rsp file, it supports
-filelist. So we can pass a file list via a file.
-filelist takes a file list separated by a new line, so we can
abuse rspfile for this purpose.

"solink", "solink_module", and "link" are doing the same thing,
so I believe this is acceptable.

Bug: 820900
Change-Id: I583d320ac96f959b1a7c3d878a882d17f63cb566
Reviewed-on: https://chromium-review.googlesource.com/964033
Commit-Queue: Shinya Kawanaka <shinyak@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#543965}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0a289a6f991239e4472cf373b021529e0344c4c8
2018-03-19 03:20:05 +00:00
Takuto Ikuta 8dc3a7134e Reland of -g0 for slow android try builder
This is re-land of
https://chromium-review.googlesource.com/c/chromium/src/+/892187
But only focus on android_n5x_swarming_rel builder not to drop debug info in other builder unintentionally.

Bug: 794423
Change-Id: Iaedcefdee04f3f63152c212dcd4a6bc36174b954
Reviewed-on: https://chromium-review.googlesource.com/939207
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Cr-Original-Commit-Position: refs/heads/master@{#539705}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bcaab58c464424f8716afd10737dd6d3e1474d56
2018-02-28 04:17:20 +00:00
Takuto Ikuta a882b74a12 Fix condition for concurrent link on linux_chromium_rel_ng builder
This is follow up of
https://chromium-review.googlesource.com/938883

This is for increase the number concurrent link on buildbot, does the same thing with below CL.
https://chromium-review.googlesource.com/891043

Bug: 794423
Change-Id: I2272cf8be22235b26f12568ccb6d5f55059538a5
Reviewed-on: https://chromium-review.googlesource.com/938688
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#539681}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b6e0659b3aaeecd54ffd9401c05d081e00d50735
2018-02-28 03:03:14 +00:00
Sebastien Marchand 9244b530c7 Remove the linkrepro_root_dir GN flag.
It's not needed anymore.

Bug: 669854
Change-Id: Ibf9fae7df457a5abb6237c9f43518b5d8a661587
Reviewed-on: https://chromium-review.googlesource.com/938369
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#539524}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 975570090c1b2b08b56620f403f1543c24df13a9
2018-02-27 19:47:34 +00:00
Nico Weber 0f9f95fbf3 Update prebuilt rc binary.
CL created by running build/toolchain/win/rc/upload_rc_binaries.sh
Picks up b78055a9b7

Bug: 814452
Change-Id: Id8d5c8b1bde49e0899314901782a5228212080f8
Reviewed-on: https://chromium-review.googlesource.com/929941
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#538449}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a099dfc3728ae6a737d2a0b716c9609915f200be
2018-02-22 16:20:09 +00:00
Peter Collingbourne fba4f0c50e build: Fix a Windows-ism in the msvc_toolchain rules.
Avoid using "cmd /c" on non-Windows platforms. This fixes the Windows
cross build in a couple of cases.

Change-Id: I4da82e50abbc392dbd90afe34befacc9bce9a593
Reviewed-on: https://chromium-review.googlesource.com/920762
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Peter Collingbourne <pcc@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#537221}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1f49f5de7b13240487312daab67135e35bce93bc
2018-02-16 05:46:26 +00:00
Greg Kraynov fe19f956bd Goma: Support GOMA_DIR env var in GN.
If developer installs goma to location different from $HOME/goma,
GOMA_DIR should be set as per official goma docs.

Change-Id: I35d952a837f6f734ef9d45e415d5a49596f88b58
Reviewed-on: https://chromium-review.googlesource.com/918681
Commit-Queue: Greg Kraynov <kraynov@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#536772}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d00240d699a22545f09c04a4ee5085adbc300985
2018-02-14 19:15:04 +00:00
Hans Wennborg c7a79acbd2 Roll clang 321529:324578
This changes the Clang version number from 6.0.0 to 7.0.0.

Bug: 803661

Change-Id: Ib717cadcb3873d6dc3e49267629f7ffc1acf1df7
Reviewed-on: https://chromium-review.googlesource.com/903927
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#535693}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ca5066b992b8a05e6a3df042f2c0e1766e13a565
2018-02-09 12:48:33 +00:00
Takuto Ikuta 03220ef360 Use action pool for non-goma tasks
Invoking cpu intensive python processes more than machine cores has some overhead on Mac(crbug.com/695864) and Win.

This change introduces pool mainly for python generator to restrict the number of running process when we specify large parallelism with goma.
I took 3 time build stats using target generate_bindings_modules_v8_interfaces and generate_bindings_core_v8_interfaces which have 1148 python tasks.

With this CL on z840 windows10
TotalSeconds      : 18.2953436
TotalSeconds      : 18.6283626
TotalSeconds      : 19.2731436

Without this CL on Z840 windows10
TotalSeconds      : 23.8277797
TotalSeconds      : 23.6952018
TotalSeconds      : 23.0853999

Linux looks to have good task scheduler.
With this CL on z840 linux
0m9.067s
0m8.771s
0m8.953s

Without this CL on Z840 linux
0m8.998s
0m9.022s
0m8.958s

Also this improves UI's responsiveness when we are building chrome on windows.


Stats of clean chrome build in each major OS is like below.

5 time clean build of chrome on Z840 windows 10 with -j1000 and warm goma backend cache is like below.

With this CL
333.3425057
317.4724857
305.0217898
317.8907203
305.1031952
Avg: 315.76613934

Without this CL
369.9731363
331.296758
329.0041556
329.1472297
333.3883952
Avg: 338.56193496


5 time clean build of chrome on Z840 linux with -j1000 and warm goma backend cache is like below.

With this CL
90.42
87.91
90.45
90.50
89.02
avg: 89.66

Without this CL
89.52
86.34
86.08
85.67
85.89
avg: 86.7


3 time clean build of chrome on 24 thread Mac Pro with -j500 and warm goma backend cache is like below.

With this CL
638.28
627.28
624.69
avg: 630.083

Without this CL
667.52
663.83
655.95
avg: 662.433


Bug: 695864
Change-Id: I6838c0f71b8d8030e6eab58b2990810aaa997dfa
Reviewed-on: https://chromium-review.googlesource.com/882581
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#535589}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2c098797567226115653c2567dbcfc72ee5af5ae
2018-02-09 00:21:48 +00:00
Takuto Ikuta b948ba9565 re-land increase of linker pool for android builder
This is re-land of
https://chromium-review.googlesource.com/894928

I changed to use cpu core for restriction and use lower memory limit only on
non-debug and non-sanitizer build.

I explained more detailed intention of my cl in
https://bugs.chromium.org/p/chromium/issues/detail?id=808582#c10


Bug: 808582, 804251
Change-Id: Ic98e9ffd7497a63c3aa98ec50b06f90c225d0107
Reviewed-on: https://chromium-review.googlesource.com/900611
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#534637}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 880379154e507eecff550d10feb1d8b8cc7e6ea2
2018-02-06 05:36:09 +00:00
Takuto Ikuta c02da72816 Increase link_pool for win
This is mainly for faster compile step on win7_chromium_rel_ng.

I checked amount of peak memory consumption for some large targets via task manager with args.gn of win7_chromium_rel_ng.
unit_tests.exe 1.9~2.0 GB
browser_tests.exe 1.9~2.0 GB
interactive_ui_tests.exe 1.7~1.8 GB
chrome.exe 0.9~1.0 GB

So 3GB will be sufficient.
Tested on CQ with https://chromium-review.googlesource.com/c/chromium/src/+/897235/13

Bug: 804251
Change-Id: I4b17287fd8757f007c81b4a484a1b0371435dbe3
Reviewed-on: https://chromium-review.googlesource.com/897235
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Cr-Original-Commit-Position: refs/heads/master@{#534327}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 799c810b24e6471bb192e3c6981071cb2ffa1d49
2018-02-05 04:46:29 +00:00
agrieve 2effa484b6 Revert "Increases link_pool from 3 to 8 for static and minimal_symbols android builder"
This reverts commit bc25fa082ae26f43edfd0eb0af6929ec03acbe41.

Reason for revert: Bot is running out of memory (see bug)

Original change's description:
> Increases link_pool from 3 to 8 for static and minimal_symbols android builder
>
> This is mainly for proguard steps which make build slow due to restricted parallelism on android_n5x_swarming_rel builder.
> Example build traces from slow builds:
> https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave954-c4/ninja_log.slave954-c4.chrome-bot.20180131-023634.24049.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351638
> https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave617-c4/ninja_log.slave617-c4.chrome-bot.20180131-021253.3583.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351634
> https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave980-c4/ninja_log.slave980-c4.chrome-bot.20180131-021148.4142.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351629
>
> I investigate peak memory usage of some large/long time targets with args.gn of android_n5x_swarming_rel.
> |--------------------------------------------------------+-------------|
> | target                                                 | peak memory |
> |--------------------------------------------------------+-------------|
> | chrome_public_apk.proguard.jar                         | 843076 KB   |
> | chrome_public_test_apk__apk.proguard.jar               | 995208 KB   |
> | chrome/android/monochrome_public_apk/classes.dex       | 1178664 KB  |
> | lib.unstripped/lib_unit_tests__library.so              | 3181252 KB  |
> | android_clang_arm/lib.unstripped/libmonochrome.so      | 2718856 KB  |
> | android_clang_arm/lib.unstripped/libwebviewchromium.so | 2362328 KB  |
> |--------------------------------------------------------+-------------|
>
> So 4GB is sufficient.
> I tested the builder by modifing base_export.h to run linker for many targets in https://chromium-review.googlesource.com/c/894928/4
>
> Bug: 804251
> Change-Id: Ic5f985dba29d063a7541553813561f85c9dd3278
> Reviewed-on: https://chromium-review.googlesource.com/894928
> Commit-Queue: Takuto Ikuta <tikuta@google.com>
> Reviewed-by: agrieve <agrieve@chromium.org>
> Reviewed-by: John Budorick <jbudorick@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#533547}

TBR=dpranke@chromium.org,agrieve@chromium.org,tikuta@google.com,jbudorick@chromium.org
NOTRY=true
# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 804251, 808582
Change-Id: Iceb52c1bb4e506d9d7fa2eebfd8bdd6f67fa2722
Reviewed-on: https://chromium-review.googlesource.com/900063
Commit-Queue: agrieve <agrieve@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#534161}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1412ae6723a14a741efa10c3d7d162a3d8a134cb
2018-02-02 21:35:43 +00:00
Scott Graham 9e06c3fc3b Fix linux/win cross-compile
After https://chromium-review.googlesource.com/c/chromium/src/+/876683.

Bug: 644525
Change-Id: Ic8f71d5f4cababaa252fd4c9155ea8b34b29158b
Reviewed-on: https://chromium-review.googlesource.com/896695
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#533749}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f1de72ddf27a1e397aa3cc24f0db96319d501702
2018-02-01 18:39:37 +00:00
Takuto Ikuta 8222c43a65 Increases link_pool from 3 to 8 for static and minimal_symbols android builder
This is mainly for proguard steps which make build slow due to restricted parallelism on android_n5x_swarming_rel builder.
Example build traces from slow builds:
https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave954-c4/ninja_log.slave954-c4.chrome-bot.20180131-023634.24049.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351638
https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave617-c4/ninja_log.slave617-c4.chrome-bot.20180131-021253.3583.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351634
https://chromium-build-stats.appspot.com/ninja_log/2018/01/31/slave980-c4/ninja_log.slave980-c4.chrome-bot.20180131-021148.4142.gz/trace.html from https://ci.chromium.org/buildbot/tryserver.chromium.android/android_n5x_swarming_rel/351629

I investigate peak memory usage of some large/long time targets with args.gn of android_n5x_swarming_rel.
|--------------------------------------------------------+-------------|
| target                                                 | peak memory |
|--------------------------------------------------------+-------------|
| chrome_public_apk.proguard.jar                         | 843076 KB   |
| chrome_public_test_apk__apk.proguard.jar               | 995208 KB   |
| chrome/android/monochrome_public_apk/classes.dex       | 1178664 KB  |
| lib.unstripped/lib_unit_tests__library.so              | 3181252 KB  |
| android_clang_arm/lib.unstripped/libmonochrome.so      | 2718856 KB  |
| android_clang_arm/lib.unstripped/libwebviewchromium.so | 2362328 KB  |
|--------------------------------------------------------+-------------|

So 4GB is sufficient.
I tested the builder by modifing base_export.h to run linker for many targets in https://chromium-review.googlesource.com/c/894928/4

Bug: 804251
Change-Id: Ic5f985dba29d063a7541553813561f85c9dd3278
Reviewed-on: https://chromium-review.googlesource.com/894928
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#533547}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bc25fa082ae26f43edfd0eb0af6929ec03acbe41
2018-02-01 03:52:25 +00:00
Kevin Marshall 09484c775e Fuchsia: Construct Fuchsia packages using stripped binaries.
The packaging step now uses the binaries which were stripped via
"eu-strip". The unstripped binaries are included in the build
output as runtime dependencies, to support symbolization.


Bug: 792521,788851
Change-Id: I73351d7e68c81487591e85c9b598effec9ff45a6
Reviewed-on: https://chromium-review.googlesource.com/891628
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#533445}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3d0153fb52415ac79ffbbd3da589a8378a7ba59c
2018-01-31 22:25:53 +00:00
Takuto Ikuta 2e93695341 Increase link parallelism of linux build
This is re-land of
https://chromium-review.googlesource.com/891043

Changed not to increase link parallelism for chrome on chromeos.

Bug: 807145
Change-Id: I11c49d215704556eaa709af08ffe7226c3df529d
Reviewed-on: https://chromium-review.googlesource.com/892779
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#533194}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f74d0fa6077160fe1fbf76604ee7e98fa43c02f6
2018-01-31 03:57:17 +00:00
Bruce Dawson 16e3687855 Avoid Windows kernel bug using Python hack
On about 3-4% of Chrome builds on my workstation one of the executables
generated and then used during the build will crash. The binary on disk
is always fine but the loader sometimes maps in pages of zeroes where it
should be mapping in pages from the just-generated binary. Having a page
of zeroes where you are expecting useful instructions tends to lead to
crashes.

This appears to be a bug in the OS disk cache. My suspicion is that this
kernel bug only happens on multi-socket systems, but this is
speculation.

This bug happens regardless of which compiler or linker is used, and
appears to happen on multiple Windows versions. The best reproes have
been on Windows 10 Creators Update, or at least that is where I have
done most of my testing.

Extensive testing - hundreds of overnight builds - has shown that the
problem goes away if FlushFileBuffers is called on the output file
after linking is finished. Eventually this fix/hack will be coded into
lld-link.exe, but for now it is put in tool_wrapper.py to fix the bug
for both link.exe and lld-link.exe.

Earlier versions of this fix only applied it to files with .exe
extensions. However the bug is believed to have happened with DLLs, and
may also affect .lib files created by the linkers, so now it is done
always. The belief is that the performance impact will be negligible.

Importing of win32file required some trickiness because in the context
of ninja builds of Chrome the depot_tools python.bat file is apparently
not called. This means that the python directory is not added to the
system path. The python runtime correctly finds win32file.pyd and calls
LoadLibrary on it but the OS then finds its dependencies in another
version of python installed on the system and the DLL load fails if
those are 64-bit instead of 32-bit.

Bug: 644525
Change-Id: I71d63b47050385e2e5ba46ced9c8018220370ba7
Reviewed-on: https://chromium-review.googlesource.com/876683
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Zachary Turner <zturner@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#533137}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 052a09014b2018e2a1e3b7f046ea9ad3355b831e
2018-01-31 01:10:10 +00:00
John Abd-El-Malek f8323d8055 Revert "Allow more concurrent link for linux_chromium_rel_ng builder"
This reverts commit 848e109661ef338dedcd8d2d59f281308b9ec1c9.

Reason for revert: chromeos trybots are all failing compiles.

Bug: 807145
NOTRY=true

Original change's description:
> Allow more concurrent link for linux_chromium_rel_ng builder
> 
> I took peak memory usage stats for top3 largest binary link using the same args.gn with linux_chromium_rel_ng.
> 229MB chrome: 2.22 GB peak memory
> 260MB browser_tests: 2.56 GB peak memory
> 258MB unit_tests: 2.57 GB peak memory
> 
> So 3GB is sufficient.
> 
> This will help to speed up build like below.
> https://ci.chromium.org/buildbot/tryserver.chromium.linux/linux_chromium_rel_ng/634117
> ninja trace: https://chromium-build-stats.appspot.com/ninja_log/2018/01/29/slave645-c4/ninja_log.slave645-c4.chrome-bot.20180129-023145.30339.gz/trace.html
> Some newlib_pnacl related binary prevent mksnapshot to be linked due to small link pool and many targets indirectly depends on mksnapshot.
> 
> 
> Change-Id: I7c58aec10949c350bbce0a97704048caf44f5b96
> Reviewed-on: https://chromium-review.googlesource.com/891043
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Takuto Ikuta <tikuta@google.com>
> Cr-Commit-Position: refs/heads/master@{#532662}

TBR=thakis@chromium.org,dpranke@chromium.org,tikuta@google.com

Change-Id: I3d6a0cdc7df943731755f926ab0a5d3a0670bb5f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/891844
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#532744}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1c99068c887584d085d0ea13370d3f6dab67f8b5
2018-01-30 03:47:48 +00:00
Takuto Ikuta 3a9104c590 Allow more concurrent link for linux_chromium_rel_ng builder
I took peak memory usage stats for top3 largest binary link using the same args.gn with linux_chromium_rel_ng.
229MB chrome: 2.22 GB peak memory
260MB browser_tests: 2.56 GB peak memory
258MB unit_tests: 2.57 GB peak memory

So 3GB is sufficient.

This will help to speed up build like below.
https://ci.chromium.org/buildbot/tryserver.chromium.linux/linux_chromium_rel_ng/634117
ninja trace: https://chromium-build-stats.appspot.com/ninja_log/2018/01/29/slave645-c4/ninja_log.slave645-c4.chrome-bot.20180129-023145.30339.gz/trace.html
Some newlib_pnacl related binary prevent mksnapshot to be linked due to small link pool and many targets indirectly depends on mksnapshot.


Change-Id: I7c58aec10949c350bbce0a97704048caf44f5b96
Reviewed-on: https://chromium-review.googlesource.com/891043
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Cr-Original-Commit-Position: refs/heads/master@{#532662}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 848e109661ef338dedcd8d2d59f281308b9ec1c9
2018-01-29 23:42:32 +00:00
Brett Wilson d294f11061 Remove brettw from owners files.
Removes myself from all owners files except tools/gn.

Replace myself with dpranke for owners of BUILDCONFIG.gn

TBR=jam@chromium.org

Change-Id: I015c6724ba04c07a9954107e1f5319ff3ef480ce
Reviewed-on: https://chromium-review.googlesource.com/891669
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#532534}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c466dc805f8aa911524deee91e49e534f69ada03
2018-01-29 19:20:12 +00:00
Nico Weber d719a18264 win: Change default goma location from c:\goma to c:\src\goma
c:\src is more often whitelisted for virus scanners, so putting goma there
can make your build faster and is now officially recommended.

If you have goma in c:\goma, move it to c:\src\goma.

See also internal thread titled
"Are you using goma on Windows? Move goma install to C:\src\goma\goma-win64"

Bug: none
Change-Id: Idc608cad64b388e6030afccb0dee4c647000be90
Reviewed-on: https://chromium-review.googlesource.com/883661
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#531530}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6e48cec330a089c2540a99a0035dc31a8c2607cc
2018-01-24 15:12:42 +00:00
Takuto Ikuta 9e6dcff90c Do not use rsp files for windows compile
Creating and deleting rsp files is time consuming part when building on windows with warmed goma backend cache.
To reduce such bottleneck, we can use all compiler flags directory in command line instead of using rsp file.

This CL keeps using rsp file for linking because linking flags can be longer than compiles and the number of linking is relatively small compared to compile.

I took 3 time build stats for 'chrome' on 48 thread Z840 windows 10 with following args.gn and -j 500.
```
goma_dir = "C:\\src\\goma_client\\client\\out\\Release"
is_component_build = true
is_debug = false
strip_absolute_paths_from_debug_symbols = true
symbol_level = 0
target_cpu = "x86"
use_goma = true

is_clang = false
enable_nacl = false
use_lld = true
```

* With this CL
TotalSeconds: 279.9604737
TotalSeconds: 279.4099064
TotalSeconds: 273.8253059
Avg: 277.731895333333

* Without this CL
TotalSeconds: 325.0155664
TotalSeconds: 319.4094433
TotalSeconds: 299.9709
Avg: 314.798636566667


Bug: 796021
Change-Id: Ice959c196b6879b39962a3b628cdcf531884ec36
Reviewed-on: https://chromium-review.googlesource.com/832593
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#529137}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d2164444bcfdf6e4e5eadc55bcfb77fd74f9dba8
2018-01-13 01:33:45 +00:00
Roger Tawa a89e6c839d Allow specifying name of header output of midl gn rule
Bug: None
Change-Id: I1e0df67c3e1e7e51675f0bdc0a1e275a5b92c54e
Reviewed-on: https://chromium-review.googlesource.com/852361
Commit-Queue: Roger Tawa <rogerta@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#527405}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e6bd6cb0e492a3fe69145cdb0bc476432ab0a85c
2018-01-05 22:04:38 +00:00
Hans Wennborg c28b418b9c Clang: the tip-of-tree version is now 7.0.0
It was bumped in LLVM r321712.

TBR=thakis,rnk

Bug: none
Change-Id: Ief1c0855a99be9d23330b91b8e804348a070822c
Reviewed-on: https://chromium-review.googlesource.com/848748
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#526707}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7bfb139d180543d9e4402dfcc7bedb79cf9c4872
2018-01-03 16:12:48 +00:00
Max Moroz 5308588b4e Reland "Migrate to -fsanitize=fuzzer-no-link when use_fuzzing_engine=true".
-fsanitize=fuzzer and -fsanitize=fuzzer-no-link are two compilation
flags that enable coverage instrumentation needed for libFuzzer.

The instrumentation has more stuff under the hood compared to
-fsanitize=trace-pc-guard. Also, it can be changing over time
without a need to update GN flags again and again (e.g. move from
edge to trace-pc-guard or something like that).

Bug: 764514
Change-Id: I53bf5a3355335f4f627e9024b7ed7fe601c9ecfd

> Revert "Migrate to -fsanitize=fuzzer-no-link when use_fuzzing_engine=true."
>
> This reverts commit c1406d52464e16da16aae9cb189c4f28e6412358.
>
> Reason for revert: The builds are failing on linking of some fuzzers: https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.fyi%2FLibfuzzer_Upload_Linux_ASan%2F7088%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout
>
> Original change's description:
> > Migrate to -fsanitize=fuzzer-no-link when use_fuzzing_engine=true.
> >
> > -fsanitize=fuzzer and -fsanitize=fuzzer-no-link are two compilation
> > flags that enable coverage instrumentation needed for libFuzzer.
> >
> > The instrumentation has more stuff under the hood compared to
> > -fsanitize=trace-pc-guard. Also, it can be changing over time
> > without a need to update GN flags again and again (e.g. move from
> > edge to trace-pc-guard or something like that).
> >
> > Bug: 764514
> > Change-Id: I48ef328dee49a9620a1b44bd5cd920f116e1bc1b
> > Reviewed-on: https://chromium-review.googlesource.com/802395
> > Commit-Queue: Max Moroz <mmoroz@chromium.org>
> > Reviewed-by: Oliver Chang <ochang@chromium.org>
> > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#522505}

Change-Id: I53bf5a3355335f4f627e9024b7ed7fe601c9ecfd
Reviewed-on: https://chromium-review.googlesource.com/846100
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Max Moroz <mmoroz@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#526592}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ddd48e3299a1adf1e12f4d1fe680fd47eac8700d
2018-01-03 02:31:38 +00:00
Gordana Cmiljanovic d49126c0ee [MIPS] Fix ld.bfd linker issue for mipsel
Adding -Wl,--start-group, -Wl,--end-group so that ld.bfd
can resolve library dependencies in case of Android
component build for mipsel.

Bug: 794486
Change-Id: I9ce1867b614aea51382637bc59aa7c7b8c2adbde
Reviewed-on: https://chromium-review.googlesource.com/823905
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#525039}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 71279763dbdd0d8d3a3cb1fb038587ab752ace47
2017-12-19 15:18:23 +00:00
Nico Weber ccb835d617 Update prebuilt rc binary.
CL created by running build/toolchain/win/rc/upload_rc_binaries.sh
Picks up 76cb2fde80

Bug: 794598
Change-Id: I1a735b761f2cb14cb8f2f44276af373f9e2acf5e
Reviewed-on: https://chromium-review.googlesource.com/825003
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#523905}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8e611f8193870af6243afe04c8845c2dda01b752
2017-12-13 22:16:15 +00:00
Wez e796de3d7c Disable stripping of binaries, and fix --dry-run.
Stripping binaries entirely before shipping them to swarming clients to
be run prevents us from symbolizing stack traces. Since the effect on
binary & bootfs size is not all that great for Release, nor for Debug
component builds, disable stripping entirely for now.

Bug: 792521
Change-Id: Ie9031e26dcd9f77ee17e5bb3648f0ad13839f61f
Reviewed-on: https://chromium-review.googlesource.com/818505
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#523222}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e1e1c872d3e7c9af677673b493e209b3cb845e8c
2017-12-11 21:53:22 +00:00