diff options
author | Tatsuyuki Ishi <ishitatsuyuki@google.com> | 2024-06-11 02:14:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-10 10:14:44 -0700 |
commit | 1d96e4bc2d09bc085e7c1b303d930684756b94a7 (patch) | |
tree | 5a63a08083f7a25520b1354066ea1141d1fe774d /lld/ELF | |
parent | caf2de76e4c3ec70e012bc2582349d34ec6018fc (diff) | |
download | llvm-1d96e4bc2d09bc085e7c1b303d930684756b94a7.zip llvm-1d96e4bc2d09bc085e7c1b303d930684756b94a7.tar.gz llvm-1d96e4bc2d09bc085e7c1b303d930684756b94a7.tar.bz2 |
[ELF] Change build-id default to sha1 (#93943)
The current default, build-id=fast, is only 8 bytes due to the usage of
64-bit XXH3. This is incompatible with RPM packaging tools which
requires >=16 bytes [1].
In Clang the ENABLE_LINKER_BUILD_ID define makes it pass --build-id
without a specific hash type. When also defaulting to LLD, this provides
a pretty broken default out-of-box.
Using XXH3 was a considerable performance advantage when build-id was
first implemented, because sha1 was really sha1 and rather slow.
Nowadays sha1 is just 160-bit BLAKE3 which is decently fast and not
cryptographically broken, so it should be a good default.
Note that the default remains "fast" for wasm because sha1 for wasm is
still real sha1.
Close https://github.com/llvm/llvm-project/issues/43483.
[1]:
https://github.com/rpm-software-management/rpm/blob/b7d427728b8ba8734ba47d51849a5736bdd727cd/build/files.c#L1883
Diffstat (limited to 'lld/ELF')
-rw-r--r-- | lld/ELF/Options.td | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td index d1017468..7d91b02 100644 --- a/lld/ELF/Options.td +++ b/lld/ELF/Options.td @@ -57,7 +57,7 @@ def Bstatic: F<"Bstatic">, HelpText<"Do not link against shared libraries">; def build_id: J<"build-id=">, HelpText<"Generate build ID note">, MetaVarName<"[fast,md5,sha1,uuid,0x<hexstring>]">; -def : F<"build-id">, Alias<build_id>, AliasArgs<["fast"]>, HelpText<"Alias for --build-id=fast">; +def : F<"build-id">, Alias<build_id>, AliasArgs<["sha1"]>, HelpText<"Alias for --build-id=sha1">; defm check_sections: B<"check-sections", "Check section addresses for overlaps (default)", |