[all-commits] [llvm/llvm-project] 1d96e4: [ELF] Change build-id default to sha1 (#93943)

Tatsuyuki Ishi via All-commits all-commits at lists.llvm.org
Mon Jun 10 10:15:06 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1d96e4bc2d09bc085e7c1b303d930684756b94a7
      https://github.com/llvm/llvm-project/commit/1d96e4bc2d09bc085e7c1b303d930684756b94a7
  Author: Tatsuyuki Ishi <ishitatsuyuki at google.com>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M lld/ELF/Options.td
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    M lld/test/ELF/build-id.s

  Log Message:
  -----------
  [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



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list