Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable faster-than-sha1 build ids in LLVM, mold and binutils #1346

Closed
ermo opened this issue Jan 18, 2024 · 2 comments
Closed

Enable faster-than-sha1 build ids in LLVM, mold and binutils #1346

ermo opened this issue Jan 18, 2024 · 2 comments
Assignees
Labels
Priority: Wishlist It would be nice to have Type: Feature Something can be enhanced.

Comments

@ermo
Copy link
Contributor

ermo commented Jan 18, 2024

XXH3_64 bit is much faster than SHA-1.

EDIT:

@ermo ermo added the Type: Feature Something can be enhanced. label Jan 18, 2024
@ermo ermo added this to the Solus 4.6 milestone Jan 18, 2024
@ermo ermo added this to Solus Jan 18, 2024
@github-project-automation github-project-automation bot moved this to Triage in Solus Jan 18, 2024
@silkeh silkeh moved this from Triage to Ready in Solus Jan 19, 2024
@EbonJaeger EbonJaeger added the Priority: Low Low priority label Jan 26, 2024
@ermo ermo added Priority: Wishlist It would be nice to have and removed Priority: Low Low priority labels May 3, 2024
@ermo ermo modified the milestones: Solus 4.6, Solus 4.7 May 3, 2024
@ReillyBrogan
Copy link
Contributor

Any objection to changing this to "Enable BLAKE3 for build IDs in LLVM/MOLD/binutils"?

If that's fine then this can be marked as complete once #4570 and #4575 land. MOLD was done in 61a0bae

We can revisit XXH3 when support for it lands in a released version of binutils. My gut feeling is that we're getting 90-95% of the possible improvement of SHA1 -> XXH3 by using BLAKE3 and it might not be worth pursuing. If it's worth doing anywhere though it'll be binutils since the hashing there does the entire buffer in one thread. LLVM/MOLD are likely to not see as much improvement since they break the input into 1MB chunks and do them in parallel.

ReillyBrogan added a commit that referenced this issue Dec 16, 2024
Changes:
- Re-enable building LLVM with PGO
- Enable perf support in the JIT engine
- Build MLIR-C library shared
- Install the lld man page
- Add "Solus $version-$release" to the Clang version
- Disable building libcxx and llvm benchmarks (these weren't installed
but were still built previously)
- Ensure that the build-id is always set when writing ELF binaries and
that it uses 20-byte output by default
- Use zstd-compressed debug symbols by default for
clang/lld/llvm-objcopy (for #1347)

Addresses the LLVM part of #1346
@ermo ermo changed the title Enable XXH3_64 for debug build ids in LLVM + GCC Enable faster-than-sha1 build ids in LLVM + GCC Dec 17, 2024
@ermo ermo changed the title Enable faster-than-sha1 build ids in LLVM + GCC Enable faster-than-sha1 build ids in LLVM, mold and binutils Dec 17, 2024
@ermo
Copy link
Contributor Author

ermo commented Dec 17, 2024

Closing this as the scope of "faster build id generation" has now been achieved.

#4603 is for tracking whether the next frontier of performance is worth pursuing.

@ermo ermo closed this as completed Dec 17, 2024
@github-project-automation github-project-automation bot moved this from Ready to Done in Solus Dec 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Wishlist It would be nice to have Type: Feature Something can be enhanced.
Projects
Archived in project
Development

No branches or pull requests

4 participants