Deploy LLD for Windows builds |
|||||||||||||||||||||||||||
Issue descriptionThis is a tracking bug for switching from MSVC's link.exe to LLVM's lld linker.
,
Dec 6 2017
There is great interest in this bug - can you add more details about the current state, remaining challenges, etc., or a link to somewhere with this information? If possible.
,
Dec 6 2017
There are a couple of outstanding issues. I think the idea behind this bug is that we will add all additional blockers as we find them. Off the top of my head the remaining work, in no particular order and with varying degrees of priority and blocking-potential, consists of: 1. Get CFI working. This is ongoing. 2. Make the linker faster. I don't really want to elaborate too much here because this is still experimental and I don't want to unnecessarily raise hopes, but I'm toying with improvements that I hope yield anywhere from 2x-4x linker speedup. Link speed is going to be important since we don't have incremental links. 3. Improve stability. inglorion@ mentioned some issues in our meeting the other day about linker stability when targeting x86. I don't know the details. 4. Confidence in PDB quality. Debug info quality tests will be nice here, but at the moment I'm prioritizing #2. Maybe others can add more, this is what I can think of off the top of my head.
,
Dec 6 2017
Are 1 and 2 truly blockers for deploying LLD in official builds? Regarding 1, I don't think we need to deploy CFI at the same time as LLD; indeed, it seems less risky to change one thing at a time. Regarding 2, I'd be curious to see a performance comparison against link.exe for official builds, which don't appear to use incremental linking [1]. If we're faster already, I wouldn't see this as a blocker for switching the linker used for non-incremental builds. [1] https://cs.chromium.org/chromium/src/build/config/win/BUILD.gn?type=cs&q=file:%5C.gn+/incremental&sq=package:chromium&l=374
,
Dec 6 2017
I think the main ones are 3 and 4 above. We've been running Chromium builds with LLD on the Clang waterfall for a long time, but it's not as battle tested as the compiler, and we're focusing on shipping that first.
,
Dec 6 2017
> Are 1 and 2 truly blockers for deploying LLD in official builds? I don't think they are. I think the true blockers are stability (all tests passing all the time), confidence in the PDB quality, CFG table emission, and minor things like hooking up with the order files etc.
,
Dec 6 2017
I think we will want developers using lld before we deploy to official builds, and link speed is a big deal for developer builds. Having developers using it also contributes to PDB quality confidence. So I think #2 is important
,
Dec 6 2017
,
Dec 8 2017
,
Dec 12 2017
,
Jan 11 2018
,
Jan 11 2018
,
Jan 23 2018
,
Feb 14 2018
,
Mar 7 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e07848768b864df7a5ffa4120541cd5862a76491 commit e07848768b864df7a5ffa4120541cd5862a76491 Author: Nico Weber <thakis@chromium.org> Date: Wed Mar 07 16:09:02 2018 win: Remove "Compiler:" line from about:version; add "Linker:" line instead. Shipping Chrome/Wins are now always built with clang, so the Compiler: line is no longer needed. This part reverts https://codereview.chromium.org/1404063002 (and some follow-ups). We do want to switch the linker eventually, so add a "Linker:" line instead. Bug: 82385 , 530785 , 792131 Change-Id: I0ecee267e468e04ee10590e1396df8c49110e595 Reviewed-on: https://chromium-review.googlesource.com/952486 Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#541448} [modify] https://crrev.com/e07848768b864df7a5ffa4120541cd5862a76491/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/e07848768b864df7a5ffa4120541cd5862a76491/chrome/browser/ui/webui/version_ui.cc [modify] https://crrev.com/e07848768b864df7a5ffa4120541cd5862a76491/components/version_ui/resources/about_version.html [modify] https://crrev.com/e07848768b864df7a5ffa4120541cd5862a76491/components/version_ui/version_ui_constants.cc [modify] https://crrev.com/e07848768b864df7a5ffa4120541cd5862a76491/components/version_ui/version_ui_constants.h
,
Mar 8 2018
,
Mar 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7ba450fdfff078d0cc9b29bf8ed7cc2c39514d74 commit 7ba450fdfff078d0cc9b29bf8ed7cc2c39514d74 Author: Nico Weber <thakis@chromium.org> Date: Thu Mar 08 19:58:46 2018 win: Use order files with lld as well. Bug: 792131 , 728324 Change-Id: I3b2ebe4a2073b6a03193dac5c497dbd3c53fc06d Reviewed-on: https://chromium-review.googlesource.com/955726 Reviewed-by: Reid Kleckner <rnk@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#541874} [modify] https://crrev.com/7ba450fdfff078d0cc9b29bf8ed7cc2c39514d74/chrome/BUILD.gn
,
Mar 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/33f64ee226c18ccae818398d57827a7407a8326c commit 33f64ee226c18ccae818398d57827a7407a8326c Author: Nico Weber <thakis@chromium.org> Date: Fri Mar 09 04:45:30 2018 Revert "win: Use order files with lld as well." This reverts commit 7ba450fdfff078d0cc9b29bf8ed7cc2c39514d74. Reason for revert: lld-link currently warns if the orderfile references non-existing functions, without implementing the flag to disable that warning. Since our orderfiles are usually somewhat out of date, lld-link currently always warns. Reland once https://llvm.org/PR36657 is fixed and rolled in. Original change's description: > win: Use order files with lld as well. > > Bug: 792131 , 728324 > Change-Id: I3b2ebe4a2073b6a03193dac5c497dbd3c53fc06d > Reviewed-on: https://chromium-review.googlesource.com/955726 > Reviewed-by: Reid Kleckner <rnk@chromium.org> > Commit-Queue: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#541874} TBR=thakis@chromium.org,rnk@chromium.org Change-Id: Ic9c6b7e94b99559c88a61fb22df253becf6853e9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 792131 , 728324 Reviewed-on: https://chromium-review.googlesource.com/956035 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#542027} [modify] https://crrev.com/33f64ee226c18ccae818398d57827a7407a8326c/chrome/BUILD.gn
,
Mar 9 2018
,
Mar 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8299aa5141fb91909e13d0d91ee76779e5753285 commit 8299aa5141fb91909e13d0d91ee76779e5753285 Author: Hans Wennborg <hans@chromium.org> Date: Fri Mar 16 15:59:06 2018 Ignore is_win_fastlink when linking with lld rather than asserting lld doesn't support /debug:fastlink, and so we used to assert when trying to use those two together. However, as we're planning to switch over to lld by default, we don't want to break the builds of those who have specified is_win_fastlink manually. Instead, ignore the flag when linking with lld, and eventually it will be phased out altogether. Bug: 792131 Change-Id: I83ff749254d4dbc55aedbfc6e87702e8e8a06a23 Reviewed-on: https://chromium-review.googlesource.com/966225 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/master@{#543714} [modify] https://crrev.com/8299aa5141fb91909e13d0d91ee76779e5753285/build/config/compiler/BUILD.gn [modify] https://crrev.com/8299aa5141fb91909e13d0d91ee76779e5753285/build/config/win/BUILD.gn
,
Mar 20 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/34cd61b76197dcefbd5cf9c40c72d2827e2289fb commit 34cd61b76197dcefbd5cf9c40c72d2827e2289fb Author: Hans Wennborg <hans@chromium.org> Date: Tue Mar 20 10:55:19 2018 Reland "win: Use order files with lld as well." This reverts commit 33f64ee226c18ccae818398d57827a7407a8326c. After the latest Clang roll, lld will not warn about missing symbols from the order file, so enable the use of order files again. Originally reviewed at https://chromium-review.googlesource.com/955726 TBR=thakis@chromium.org,rnk@chromium.org Bug: 792131 , 728324 Change-Id: I6662f40b9b36063eec172728027b82d96a2cd487 Reviewed-on: https://chromium-review.googlesource.com/970421 Reviewed-by: Hans Wennborg <hans@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/master@{#544326} [modify] https://crrev.com/34cd61b76197dcefbd5cf9c40c72d2827e2289fb/chrome/BUILD.gn
,
Mar 20 2018
,
Mar 22 2018
,
Mar 22 2018
,
Mar 29 2018
,
Mar 29 2018
,
Apr 3 2018
,
Apr 17 2018
,
Apr 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/be8138a4eb66bddb5bca81e08c13c6cb1dafc981 commit be8138a4eb66bddb5bca81e08c13c6cb1dafc981 Author: Hans Wennborg <hans@chromium.org> Date: Tue Apr 17 16:56:55 2018 win: Link with lld instead of MSVC's link.exe by default lld is LLVM's linker. It produces PE/COFF and PDB files just like link.exe, but it's significantly faster and it can also handle LLVM's internal representation, which will enable us to do link-time optimization and control-flow integraty checks with Clang. While lld is much faster at linking, it doesn't support incremental links, meaning builds that only touch a few files and re-link a large executable may become slower. This is the first attempt at switching everything over, with the purpose of gathering data and finding unknown unknowns. It's likely temporary until something breaks. is_win_fastlink is implicitly ignored when using lld, as lld without fastlink is faster than link.exe with it. Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's link.exe to make sure that configuration keeps working. Bug: 792131 Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d Reviewed-on: https://chromium-review.googlesource.com/983632 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#551367} [modify] https://crrev.com/be8138a4eb66bddb5bca81e08c13c6cb1dafc981/build/config/compiler/compiler.gni [modify] https://crrev.com/be8138a4eb66bddb5bca81e08c13c6cb1dafc981/tools/mb/mb_config.pyl
,
Apr 17 2018
,
Apr 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ca7bcc0a8f5dc444c0e652151d5af00688b592a1 commit ca7bcc0a8f5dc444c0e652151d5af00688b592a1 Author: Nico Weber <thakis@chromium.org> Date: Tue Apr 17 17:54:27 2018 Revert "win: Link with lld instead of MSVC's link.exe by default" This reverts commit be8138a4eb66bddb5bca81e08c13c6cb1dafc981. Reason for revert: broke checkbins on 32-bit, https://crbug.com/833951 Original change's description: > win: Link with lld instead of MSVC's link.exe by default > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > link.exe, but it's significantly faster and it can also handle LLVM's > internal representation, which will enable us to do link-time > optimization and control-flow integraty checks with Clang. > > While lld is much faster at linking, it doesn't support incremental > links, meaning builds that only touch a few files and re-link a large > executable may become slower. > > This is the first attempt at switching everything over, with the > purpose of gathering data and finding unknown unknowns. It's likely > temporary until something breaks. > > is_win_fastlink is implicitly ignored when using lld, as lld without > fastlink is faster than link.exe with it. > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > link.exe to make sure that configuration keeps working. > > Bug: 792131 > Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d > Reviewed-on: https://chromium-review.googlesource.com/983632 > Commit-Queue: Nico Weber <thakis@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#551367} TBR=thakis@chromium.org,hans@chromium.org Change-Id: Ia6060fe909656ce5903cf6906beb8b5e4ef538c7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 792131 Reviewed-on: https://chromium-review.googlesource.com/1015141 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#551384} [modify] https://crrev.com/ca7bcc0a8f5dc444c0e652151d5af00688b592a1/build/config/compiler/compiler.gni [modify] https://crrev.com/ca7bcc0a8f5dc444c0e652151d5af00688b592a1/tools/mb/mb_config.pyl
,
Apr 25 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6b5ac2efbfcbf98590bb1b7e610dacb3318c122a commit 6b5ac2efbfcbf98590bb1b7e610dacb3318c122a Author: Hans Wennborg <hans@chromium.org> Date: Wed Apr 25 21:55:42 2018 Reland "win: Link with lld instead of MSVC's link.exe by default" This is a reland of be8138a4eb66bddb5bca81e08c13c6cb1dafc981 The issues with the previous attempt were addressed in the latest Clang roll (#553415). Original change's description: > win: Link with lld instead of MSVC's link.exe by default > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > link.exe, but it's significantly faster and it can also handle LLVM's > internal representation, which will enable us to do link-time > optimization and control-flow integraty checks with Clang. > > While lld is much faster at linking, it doesn't support incremental > links, meaning builds that only touch a few files and re-link a large > executable may become slower. > > This is the first attempt at switching everything over, with the > purpose of gathering data and finding unknown unknowns. It's likely > temporary until something breaks. > > is_win_fastlink is implicitly ignored when using lld, as lld without > fastlink is faster than link.exe with it. > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > link.exe to make sure that configuration keeps working. > > Bug: 792131 > Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d > Reviewed-on: https://chromium-review.googlesource.com/983632 > Commit-Queue: Nico Weber <thakis@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#551367} Bug: 792131 Change-Id: I3b76cd015ef18bb3e2ac7a3efa4352c4f04e560b Reviewed-on: https://chromium-review.googlesource.com/1028374 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/master@{#553776} [modify] https://crrev.com/6b5ac2efbfcbf98590bb1b7e610dacb3318c122a/build/config/compiler/compiler.gni [modify] https://crrev.com/6b5ac2efbfcbf98590bb1b7e610dacb3318c122a/tools/mb/mb_config.pyl
,
Apr 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fda7b0b62df2fe87ca1650907911ef66a051faa8 commit fda7b0b62df2fe87ca1650907911ef66a051faa8 Author: Hans Wennborg <hans@chromium.org> Date: Thu Apr 26 03:13:25 2018 Revert "Reland "win: Link with lld instead of MSVC's link.exe by default"" This reverts commit 6b5ac2efbfcbf98590bb1b7e610dacb3318c122a. Reason for revert: It broke the Win ASan bot on the LKGR waterfall (see second bug). Original change's description: > Reland "win: Link with lld instead of MSVC's link.exe by default" > > This is a reland of be8138a4eb66bddb5bca81e08c13c6cb1dafc981 > The issues with the previous attempt were addressed in the latest > Clang roll (#553415). > > Original change's description: > > win: Link with lld instead of MSVC's link.exe by default > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > link.exe, but it's significantly faster and it can also handle LLVM's > > internal representation, which will enable us to do link-time > > optimization and control-flow integraty checks with Clang. > > > > While lld is much faster at linking, it doesn't support incremental > > links, meaning builds that only touch a few files and re-link a large > > executable may become slower. > > > > This is the first attempt at switching everything over, with the > > purpose of gathering data and finding unknown unknowns. It's likely > > temporary until something breaks. > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > fastlink is faster than link.exe with it. > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > link.exe to make sure that configuration keeps working. > > > > Bug: 792131 > > Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d > > Reviewed-on: https://chromium-review.googlesource.com/983632 > > Commit-Queue: Nico Weber <thakis@chromium.org> > > Reviewed-by: Nico Weber <thakis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#551367} > > Bug: 792131 > Change-Id: I3b76cd015ef18bb3e2ac7a3efa4352c4f04e560b > Reviewed-on: https://chromium-review.googlesource.com/1028374 > Reviewed-by: Nico Weber <thakis@chromium.org> > Commit-Queue: Hans Wennborg <hans@chromium.org> > Cr-Commit-Position: refs/heads/master@{#553776} TBR=thakis@chromium.org,hans@chromium.org Change-Id: Ied5addd2f8d16d1e002bf37846e7106b4c754cb9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 792131 , 837090 Reviewed-on: https://chromium-review.googlesource.com/1029631 Reviewed-by: Hans Wennborg <hans@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/master@{#553878} [modify] https://crrev.com/fda7b0b62df2fe87ca1650907911ef66a051faa8/build/config/compiler/compiler.gni [modify] https://crrev.com/fda7b0b62df2fe87ca1650907911ef66a051faa8/tools/mb/mb_config.pyl
,
Apr 26 2018
,
Apr 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/50b44e68c49dd38ea10a1332c216fc9b7d00cc65 commit 50b44e68c49dd38ea10a1332c216fc9b7d00cc65 Author: Hans Wennborg <hans@chromium.org> Date: Fri Apr 27 00:53:06 2018 Reland "win: Link with lld instead of MSVC's link.exe by default" This is a reland of be8138a4eb66bddb5bca81e08c13c6cb1dafc981 The issues with the first attempt were addressed in the latest Clang roll (#553415). ASan is excluded from using lld until the fix for crbug.com/837090 is rolled into Chromium. Original change's description: > win: Link with lld instead of MSVC's link.exe by default > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > link.exe, but it's significantly faster and it can also handle LLVM's > internal representation, which will enable us to do link-time > optimization and control-flow integraty checks with Clang. > > While lld is much faster at linking, it doesn't support incremental > links, meaning builds that only touch a few files and re-link a large > executable may become slower. > > This is the first attempt at switching everything over, with the > purpose of gathering data and finding unknown unknowns. It's likely > temporary until something breaks. > > is_win_fastlink is implicitly ignored when using lld, as lld without > fastlink is faster than link.exe with it. > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > link.exe to make sure that configuration keeps working. > > Bug: 792131 > Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d > Reviewed-on: https://chromium-review.googlesource.com/983632 > Commit-Queue: Nico Weber <thakis@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#551367} Bug: 792131 Change-Id: I85ad51904884734156a4e06859fd1ba08e519a3b Reviewed-on: https://chromium-review.googlesource.com/1031330 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Cr-Commit-Position: refs/heads/master@{#554239} [modify] https://crrev.com/50b44e68c49dd38ea10a1332c216fc9b7d00cc65/build/config/compiler/compiler.gni [modify] https://crrev.com/50b44e68c49dd38ea10a1332c216fc9b7d00cc65/tools/mb/mb_config.pyl
,
Apr 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2f4879b3b6c57568d6df6a3a25e184eb6c007ff0 commit 2f4879b3b6c57568d6df6a3a25e184eb6c007ff0 Author: Sam McNally <sammc@chromium.org> Date: Fri Apr 27 03:42:10 2018 Revert "Reland "win: Link with lld instead of MSVC's link.exe by default"" This reverts commit 50b44e68c49dd38ea10a1332c216fc9b7d00cc65. Reason for revert: Breaks NaCl on win7 32 bit: https://ci.chromium.org/buildbot/chromium.win/Win7%20%2832%29%20Tests/32881 Original change's description: > Reland "win: Link with lld instead of MSVC's link.exe by default" > > This is a reland of be8138a4eb66bddb5bca81e08c13c6cb1dafc981 > > The issues with the first attempt were addressed in the latest > Clang roll (#553415). ASan is excluded from using lld until > the fix for crbug.com/837090 is rolled into Chromium. > > Original change's description: > > win: Link with lld instead of MSVC's link.exe by default > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > link.exe, but it's significantly faster and it can also handle LLVM's > > internal representation, which will enable us to do link-time > > optimization and control-flow integraty checks with Clang. > > > > While lld is much faster at linking, it doesn't support incremental > > links, meaning builds that only touch a few files and re-link a large > > executable may become slower. > > > > This is the first attempt at switching everything over, with the > > purpose of gathering data and finding unknown unknowns. It's likely > > temporary until something breaks. > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > fastlink is faster than link.exe with it. > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > link.exe to make sure that configuration keeps working. > > > > Bug: 792131 > > Change-Id: I0f115a78c33d69eadbd480f75c2a5d636e86483d > > Reviewed-on: https://chromium-review.googlesource.com/983632 > > Commit-Queue: Nico Weber <thakis@chromium.org> > > Reviewed-by: Nico Weber <thakis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#551367} > > Bug: 792131 > Change-Id: I85ad51904884734156a4e06859fd1ba08e519a3b > Reviewed-on: https://chromium-review.googlesource.com/1031330 > Reviewed-by: Nico Weber <thakis@chromium.org> > Commit-Queue: Hans Wennborg <hans@chromium.org> > Cr-Commit-Position: refs/heads/master@{#554239} TBR=thakis@chromium.org,hans@chromium.org Change-Id: I1e873015f928603909b744e857efa1f5a44c2ba0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 792131 Reviewed-on: https://chromium-review.googlesource.com/1032010 Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Sam McNally <sammc@chromium.org> Cr-Commit-Position: refs/heads/master@{#554293} [modify] https://crrev.com/2f4879b3b6c57568d6df6a3a25e184eb6c007ff0/build/config/compiler/compiler.gni [modify] https://crrev.com/2f4879b3b6c57568d6df6a3a25e184eb6c007ff0/tools/mb/mb_config.pyl
,
Apr 27 2018
,
May 4 2018
,
May 11 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a25e3672d54282fe6ef822fadfcc03c09e3f185e commit a25e3672d54282fe6ef822fadfcc03c09e3f185e Author: Nico Weber <thakis@chromium.org> Date: Fri May 11 19:54:10 2018 Reland "win: Link with lld instead of link.exe by default" The nacl browser_test failures on Win7 that caused the last revert are fixed. There's a known bug about this regressing binary size ( crbug.com/838449 ), but with in-progress patches binary size will soon be 200 kB smaller and these should all be rolled in by branch point, so let's reland this to find more unknown unknowns. Original change's description: > win: Link with lld instead of MSVC's link.exe by default > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > link.exe, but it's significantly faster and it can also handle LLVM's > internal representation, which will enable us to do link-time > optimization and control-flow integraty checks with Clang. > > While lld is much faster at linking, it doesn't support incremental > links, meaning builds that only touch a few files and re-link a large > executable may become slower. > > This is the first attempt at switching everything over, with the > purpose of gathering data and finding unknown unknowns. It's likely > temporary until something breaks. > > is_win_fastlink is implicitly ignored when using lld, as lld without > fastlink is faster than link.exe with it. > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > link.exe to make sure that configuration keeps working. > > Bug: 792131 Change-Id: I18aba7a66c54c87092a13745f0ca213171ec25db Reviewed-on: https://chromium-review.googlesource.com/1054521 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Reid Kleckner <rnk@chromium.org> Cr-Commit-Position: refs/heads/master@{#557987} [modify] https://crrev.com/a25e3672d54282fe6ef822fadfcc03c09e3f185e/build/config/compiler/compiler.gni [modify] https://crrev.com/a25e3672d54282fe6ef822fadfcc03c09e3f185e/tools/mb/mb_config.pyl
,
May 11 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/de77cb762b49217d917f8d98de43312a2a803351 commit de77cb762b49217d917f8d98de43312a2a803351 Author: Jamie Madill <jmadill@chromium.org> Date: Fri May 11 23:14:47 2018 Revert "Reland "win: Link with lld instead of link.exe by default"" This reverts commit a25e3672d54282fe6ef822fadfcc03c09e3f185e. Reason for revert: broke Windows tests using ANGLE's GL back-end. Breaks the CQ for graphics-related tests, and ANGLE's CQ. example builds: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Release%20%28NVIDIA%29/1063 https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20dEQP%20Release%20%28NVIDIA%29/3528 Original change's description: > Reland "win: Link with lld instead of link.exe by default" > > The nacl browser_test failures on Win7 that caused the last revert are fixed. > There's a known bug about this regressing binary size ( crbug.com/838449 ), > but with in-progress patches binary size will soon be 200 kB smaller and > these should all be rolled in by branch point, so let's reland this to find > more unknown unknowns. > > Original change's description: > > win: Link with lld instead of MSVC's link.exe by default > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > link.exe, but it's significantly faster and it can also handle LLVM's > > internal representation, which will enable us to do link-time > > optimization and control-flow integraty checks with Clang. > > > > While lld is much faster at linking, it doesn't support incremental > > links, meaning builds that only touch a few files and re-link a large > > executable may become slower. > > > > This is the first attempt at switching everything over, with the > > purpose of gathering data and finding unknown unknowns. It's likely > > temporary until something breaks. > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > fastlink is faster than link.exe with it. > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > link.exe to make sure that configuration keeps working. > > > > Bug: 792131 > > Change-Id: I18aba7a66c54c87092a13745f0ca213171ec25db > Reviewed-on: https://chromium-review.googlesource.com/1054521 > Commit-Queue: Nico Weber <thakis@chromium.org> > Reviewed-by: Reid Kleckner <rnk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#557987} TBR=thakis@chromium.org,rnk@chromium.org Change-Id: Ida516adc6708c59407b817c8425c14bd3153d5b8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1056327 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Cr-Commit-Position: refs/heads/master@{#558055} [modify] https://crrev.com/de77cb762b49217d917f8d98de43312a2a803351/build/config/compiler/compiler.gni [modify] https://crrev.com/de77cb762b49217d917f8d98de43312a2a803351/tools/mb/mb_config.pyl
,
May 12 2018
,
May 12 2018
,
May 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1726f18fdb3865a9c0ed289c6109b823d1767bc1 commit 1726f18fdb3865a9c0ed289c6109b823d1767bc1 Author: Nico Weber <thakis@chromium.org> Date: Mon May 14 19:07:12 2018 Reland "Reland "win: Link with lld instead of link.exe by default"" This reverts commit de77cb762b49217d917f8d98de43312a2a803351. Reason for revert: https://crbug.com/842408 should now be fixed. Original change's description: > Revert "Reland "win: Link with lld instead of link.exe by default"" > > This reverts commit a25e3672d54282fe6ef822fadfcc03c09e3f185e. > > Reason for revert: broke Windows tests using ANGLE's GL back-end. > Breaks the CQ for graphics-related tests, and ANGLE's CQ. > > example builds: > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Release%20%28NVIDIA%29/1063 > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20dEQP%20Release%20%28NVIDIA%29/3528 > > Original change's description: > > Reland "win: Link with lld instead of link.exe by default" > > > > The nacl browser_test failures on Win7 that caused the last revert are fixed. > > There's a known bug about this regressing binary size ( crbug.com/838449 ), > > but with in-progress patches binary size will soon be 200 kB smaller and > > these should all be rolled in by branch point, so let's reland this to find > > more unknown unknowns. > > > > Original change's description: > > > win: Link with lld instead of MSVC's link.exe by default > > > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > > link.exe, but it's significantly faster and it can also handle LLVM's > > > internal representation, which will enable us to do link-time > > > optimization and control-flow integraty checks with Clang. > > > > > > While lld is much faster at linking, it doesn't support incremental > > > links, meaning builds that only touch a few files and re-link a large > > > executable may become slower. > > > > > > This is the first attempt at switching everything over, with the > > > purpose of gathering data and finding unknown unknowns. It's likely > > > temporary until something breaks. > > > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > > fastlink is faster than link.exe with it. > > > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > > link.exe to make sure that configuration keeps working. > > > > > > Bug: 792131 > > > > Change-Id: I18aba7a66c54c87092a13745f0ca213171ec25db > > Reviewed-on: https://chromium-review.googlesource.com/1054521 > > Commit-Queue: Nico Weber <thakis@chromium.org> > > Reviewed-by: Reid Kleckner <rnk@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#557987} > > TBR=thakis@chromium.org,rnk@chromium.org > > Change-Id: Ida516adc6708c59407b817c8425c14bd3153d5b8 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/1056327 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Cr-Commit-Position: refs/heads/master@{#558055} TBR=thakis@chromium.org,rnk@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ided62bd7fb25d17d7a318539f41c308fb738797e Reviewed-on: https://chromium-review.googlesource.com/1057767 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#558402} [modify] https://crrev.com/1726f18fdb3865a9c0ed289c6109b823d1767bc1/build/config/compiler/compiler.gni [modify] https://crrev.com/1726f18fdb3865a9c0ed289c6109b823d1767bc1/tools/mb/mb_config.pyl
,
May 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cff515c1274e6d66a55c5707c3d8c891455d5f88 commit cff515c1274e6d66a55c5707c3d8c891455d5f88 Author: Yuly Novikov <ynovikov@chromium.org> Date: Wed May 16 01:08:17 2018 Revert "win: Link with lld instead of link.exe by default" This reverts commit 1726f18fdb3865a9c0ed289c6109b823d1767bc1. Reason for revert: crbug.com/843199 Chrome fails to start on Win7 bots due to app compatibility dialog popping up Original change's description: > Reland "Reland "win: Link with lld instead of link.exe by default"" > > This reverts commit de77cb762b49217d917f8d98de43312a2a803351. > > Reason for revert: https://crbug.com/842408 should now be fixed. > > Original change's description: > > Revert "Reland "win: Link with lld instead of link.exe by default"" > > > > This reverts commit a25e3672d54282fe6ef822fadfcc03c09e3f185e. > > > > Reason for revert: broke Windows tests using ANGLE's GL back-end. > > Breaks the CQ for graphics-related tests, and ANGLE's CQ. > > > > example builds: > > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Release%20%28NVIDIA%29/1063 > > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20dEQP%20Release%20%28NVIDIA%29/3528 > > > > Original change's description: > > > Reland "win: Link with lld instead of link.exe by default" > > > > > > The nacl browser_test failures on Win7 that caused the last revert are fixed. > > > There's a known bug about this regressing binary size ( crbug.com/838449 ), > > > but with in-progress patches binary size will soon be 200 kB smaller and > > > these should all be rolled in by branch point, so let's reland this to find > > > more unknown unknowns. > > > > > > Original change's description: > > > > win: Link with lld instead of MSVC's link.exe by default > > > > > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > > > link.exe, but it's significantly faster and it can also handle LLVM's > > > > internal representation, which will enable us to do link-time > > > > optimization and control-flow integraty checks with Clang. > > > > > > > > While lld is much faster at linking, it doesn't support incremental > > > > links, meaning builds that only touch a few files and re-link a large > > > > executable may become slower. > > > > > > > > This is the first attempt at switching everything over, with the > > > > purpose of gathering data and finding unknown unknowns. It's likely > > > > temporary until something breaks. > > > > > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > > > fastlink is faster than link.exe with it. > > > > > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > > > link.exe to make sure that configuration keeps working. > > > > > > > > Bug: 792131 > > > > > > Change-Id: I18aba7a66c54c87092a13745f0ca213171ec25db > > > Reviewed-on: https://chromium-review.googlesource.com/1054521 > > > Commit-Queue: Nico Weber <thakis@chromium.org> > > > Reviewed-by: Reid Kleckner <rnk@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#557987} > > > > TBR=thakis@chromium.org,rnk@chromium.org > > > > Change-Id: Ida516adc6708c59407b817c8425c14bd3153d5b8 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Reviewed-on: https://chromium-review.googlesource.com/1056327 > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#558055} > > TBR=thakis@chromium.org,rnk@chromium.org,jmadill@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: Ided62bd7fb25d17d7a318539f41c308fb738797e > Reviewed-on: https://chromium-review.googlesource.com/1057767 > Reviewed-by: Nico Weber <thakis@chromium.org> > Commit-Queue: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#558402} TBR=thakis@chromium.org,rnk@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ifdea343a643c790b531737be6bfac9c765a355c2 Bug: 792131 , 843199 Reviewed-on: https://chromium-review.googlesource.com/1059860 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#558907} [modify] https://crrev.com/cff515c1274e6d66a55c5707c3d8c891455d5f88/build/config/compiler/compiler.gni [modify] https://crrev.com/cff515c1274e6d66a55c5707c3d8c891455d5f88/tools/mb/mb_config.pyl
,
May 16 2018
,
May 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/de0d115b29fdfdf7ccbf6b8cdaf5f31d3df6bab7 commit de0d115b29fdfdf7ccbf6b8cdaf5f31d3df6bab7 Author: Nico Weber <thakis@chromium.org> Date: Tue May 22 02:27:10 2018 Reland "win: Link with lld instead of link.exe by default" This reverts commit cff515c1274e6d66a55c5707c3d8c891455d5f88. Reason for revert: As of the last clang roll, lld defaults to writing the current time in the PE timestamp field, which should prevent https://crbug.com/843199 Original change's description: > Revert "win: Link with lld instead of link.exe by default" > > This reverts commit 1726f18fdb3865a9c0ed289c6109b823d1767bc1. > > Reason for revert: crbug.com/843199 Chrome fails to start on Win7 bots due to app compatibility dialog popping up > > Original change's description: > > Reland "Reland "win: Link with lld instead of link.exe by default"" > > > > This reverts commit de77cb762b49217d917f8d98de43312a2a803351. > > > > Reason for revert: https://crbug.com/842408 should now be fixed. > > > > Original change's description: > > > Revert "Reland "win: Link with lld instead of link.exe by default"" > > > > > > This reverts commit a25e3672d54282fe6ef822fadfcc03c09e3f185e. > > > > > > Reason for revert: broke Windows tests using ANGLE's GL back-end. > > > Breaks the CQ for graphics-related tests, and ANGLE's CQ. > > > > > > example builds: > > > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Release%20%28NVIDIA%29/1063 > > > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20dEQP%20Release%20%28NVIDIA%29/3528 > > > > > > Original change's description: > > > > Reland "win: Link with lld instead of link.exe by default" > > > > > > > > The nacl browser_test failures on Win7 that caused the last revert are fixed. > > > > There's a known bug about this regressing binary size ( crbug.com/838449 ), > > > > but with in-progress patches binary size will soon be 200 kB smaller and > > > > these should all be rolled in by branch point, so let's reland this to find > > > > more unknown unknowns. > > > > > > > > Original change's description: > > > > > win: Link with lld instead of MSVC's link.exe by default > > > > > > > > > > lld is LLVM's linker. It produces PE/COFF and PDB files just like > > > > > link.exe, but it's significantly faster and it can also handle LLVM's > > > > > internal representation, which will enable us to do link-time > > > > > optimization and control-flow integraty checks with Clang. > > > > > > > > > > While lld is much faster at linking, it doesn't support incremental > > > > > links, meaning builds that only touch a few files and re-link a large > > > > > executable may become slower. > > > > > > > > > > This is the first attempt at switching everything over, with the > > > > > purpose of gathering data and finding unknown unknowns. It's likely > > > > > temporary until something breaks. > > > > > > > > > > is_win_fastlink is implicitly ignored when using lld, as lld without > > > > > fastlink is faster than link.exe with it. > > > > > > > > > > Also switch the CrWinClangLLD bots on chromium.clang to use MSVC's > > > > > link.exe to make sure that configuration keeps working. > > > > > > > > > > Bug: 792131 > > > > > > > > Change-Id: I18aba7a66c54c87092a13745f0ca213171ec25db > > > > Reviewed-on: https://chromium-review.googlesource.com/1054521 > > > > Commit-Queue: Nico Weber <thakis@chromium.org> > > > > Reviewed-by: Reid Kleckner <rnk@chromium.org> > > > > Cr-Commit-Position: refs/heads/master@{#557987} > > > > > > TBR=thakis@chromium.org,rnk@chromium.org > > > > > > Change-Id: Ida516adc6708c59407b817c8425c14bd3153d5b8 > > > No-Presubmit: true > > > No-Tree-Checks: true > > > No-Try: true > > > Reviewed-on: https://chromium-review.googlesource.com/1056327 > > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#558055} > > > > TBR=thakis@chromium.org,rnk@chromium.org,jmadill@chromium.org > > > > # Not skipping CQ checks because original CL landed > 1 day ago. > > > > Change-Id: Ided62bd7fb25d17d7a318539f41c308fb738797e > > Reviewed-on: https://chromium-review.googlesource.com/1057767 > > Reviewed-by: Nico Weber <thakis@chromium.org> > > Commit-Queue: Nico Weber <thakis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#558402} > > TBR=thakis@chromium.org,rnk@chromium.org,jmadill@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: Ifdea343a643c790b531737be6bfac9c765a355c2 > Bug: 792131 , 843199 > Reviewed-on: https://chromium-review.googlesource.com/1059860 > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#558907} TBR=thakis@chromium.org,ynovikov@chromium.org,rnk@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 792131 , 843199 Change-Id: I29e6a1b7ab50b6713f7d176f71a09e7dd585aee3 Reviewed-on: https://chromium-review.googlesource.com/1068217 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Reid Kleckner <rnk@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#560462} [modify] https://crrev.com/de0d115b29fdfdf7ccbf6b8cdaf5f31d3df6bab7/build/config/compiler/compiler.gni [modify] https://crrev.com/de0d115b29fdfdf7ccbf6b8cdaf5f31d3df6bab7/tools/mb/mb_config.pyl
,
May 25 2018
Fixed AFAICS. Thanks! I guess the "about:version" bit should be removed sometime also.
,
Jun 1 2018
https://chromium-review.googlesource.com/c/chromium/src/+/1076808 perhaps should wait for a release with lld but lets don't forget it.
,
Jun 27 2018
,
Jul 2
,
Jul 30
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f08d5859c923edf68f9cb60012f61585cef8e146 commit f08d5859c923edf68f9cb60012f61585cef8e146 Author: Ebrahim Byagowi <ebrahim@gnu.org> Date: Mon Jul 30 14:46:43 2018 Remove "Linker:" line from about:version After several tries it seems it is stable now so lets remove this bit. Bug: 792131 Change-Id: I54df2450ff46477473d0e68b3ab9448bfa599ff3 Reviewed-on: https://chromium-review.googlesource.com/1076808 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Hans Wennborg <hans@chromium.org> Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#579035} [modify] https://crrev.com/f08d5859c923edf68f9cb60012f61585cef8e146/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/f08d5859c923edf68f9cb60012f61585cef8e146/chrome/browser/ui/webui/version_ui.cc [modify] https://crrev.com/f08d5859c923edf68f9cb60012f61585cef8e146/components/version_ui/resources/about_version.html |
|||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||
Comment 1 by h...@chromium.org
, Dec 5 2017