Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
base: 7be0ab82496d
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 2bb011032c86
Choose a head ref
  • 1 commit
  • 1 file changed
  • 1 contributor

Commits on Oct 24, 2020

  1. chromium: use official build settings (#101467)

    LLD: https://lld.llvm.org/
    When you link a large program on a multicore machine, you can expect that LLD runs more than twice as fast as the GNU gold linker. Your mileage may vary, though.
    Link-time optimization (LTO) is supported by default.
    Some default settings have been tuned for the 21st century. For example, the stack is marked as non-executable by default to tighten security.
    
    LTO & ThinLTO: https://clang.llvm.org/docs/ThinLTO.html
    LTO (Link Time Optimization) achieves better runtime performance through whole-program analysis and cross-module optimization. However, monolithic LTO implements this by merging all input into a single module, which is not scalable in time or memory, and also prevents fast incremental compiles. ThinLTO is a new approach that is designed to scale like a non-LTO build, while retaining most of the performance achievement of full LTO.
    
    PGO: https://llvm.org/docs/HowToBuildWithPGO.html https://blog.chromium.org/2020/08/chrome-just-got-faster-with-profile.html
    Allows your compiler to better optimize code for how it actually runs. Users report that applying this to Clang and LLVM can decrease overall compile time by 20%.
    Because PGO uses real usage scenarios that match the workflows of Chrome users around the world, the most common tasks get prioritized and made faster. Delivers up to 10% faster page loads.
    
    CFI: https://clang.llvm.org/docs/ControlFlowIntegrity.html https://www.chromium.org/developers/testing/control-flow-integrity
    Aborts the program upon detecting certain forms of undefined behavior that can potentially allow attackers to subvert the program’s control flow. These schemes have been optimized for performance, allowing developers to enable them in release builds.
    By default, a program compiled with CFI will crash with SIGILL if it detects a CFI violation.
    
    Additionally:
    Use minizip instead of zlib. Chromium says zlib but actually uses minizip.
    Remove old unused workarounds.
    Make shell scripts POSIX compliant.
    Update documentation URLs.
    Prepare for using system libraries.
    TredwellGit committed Oct 24, 2020
    Copy the full SHA
    2bb0110 View commit details
    Browse the repository at this point in the history