diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td index d10174681f5eb2..7d91b02b510790 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]">; -def : F<"build-id">, Alias, AliasArgs<["fast"]>, HelpText<"Alias for --build-id=fast">; +def : F<"build-id">, Alias, AliasArgs<["sha1"]>, HelpText<"Alias for --build-id=sha1">; defm check_sections: B<"check-sections", "Check section addresses for overlaps (default)", diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst index 79ddc159a945f7..12ea6de0fc15c4 100644 --- a/lld/docs/ReleaseNotes.rst +++ b/lld/docs/ReleaseNotes.rst @@ -48,6 +48,9 @@ ELF Improvements and combine relocation sections if their relocated section group members are placed to the same output section. (`#94704 `_) +* ``--build-id`` now defaults to generating a 20-byte digest ("sha1") instead + of 8-byte ("fast"). This improves compatibility with RPM packaging tools. + (`#93943 `_) Breaking changes ---------------- diff --git a/lld/docs/ld.lld.1 b/lld/docs/ld.lld.1 index bdc35c08ccb8e2..f9a00b78750388 100644 --- a/lld/docs/ld.lld.1 +++ b/lld/docs/ld.lld.1 @@ -119,7 +119,7 @@ are calculated from the object contents. is not intended to be cryptographically secure. .It Fl -build-id Synonym for -.Fl -build-id Ns = Ns Cm fast . +.Fl -build-id Ns = Ns Cm sha1 . .It Fl -call-graph-profile-sort Ns = Ns Ar algorithm .Ar algorithm may be: diff --git a/lld/test/ELF/build-id.s b/lld/test/ELF/build-id.s index 844880937b09f5..581f600881a27c 100644 --- a/lld/test/ELF/build-id.s +++ b/lld/test/ELF/build-id.s @@ -6,11 +6,12 @@ # RUN: llvm-readobj -S %t2 | FileCheck -check-prefix=ALIGN %s # RUN: ld.lld --build-id %t -o %t2 -# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s -# RUN: ld.lld --build-id=fast %t -o %t2 -# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s +# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SHA1 %s # RUN: ld.lld --build-id %t -o %t2 --threads=1 -# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s +# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SHA1 %s + +# RUN: ld.lld --build-id=fast %t -o %t2 +# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=FAST %s # RUN: ld.lld --build-id=md5 %t -o %t2 # RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=MD5 %s @@ -41,7 +42,7 @@ # RUN: ld.lld --build-id --build-id=none %t -o %t2 # RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=NONE %s # RUN: ld.lld --build-id=none --build-id %t -o %t2 -# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s +# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SHA1 %s .globl _start _start: @@ -62,10 +63,10 @@ _start: # ALIGN-NEXT: Info: # ALIGN-NEXT: AddressAlignment: 4 -# DEFAULT: Contents of section .note.test: -# DEFAULT: Contents of section .note.gnu.build-id: -# DEFAULT-NEXT: 04000000 08000000 03000000 474e5500 ............GNU. -# DEFAULT-NEXT: 630bc2f5 a2584763 +# FAST: Contents of section .note.test: +# FAST: Contents of section .note.gnu.build-id: +# FAST-NEXT: 04000000 08000000 03000000 474e5500 ............GNU. +# FAST-NEXT: 630bc2f5 a2584763 # MD5: Contents of section .note.gnu.build-id: # MD5-NEXT: 04000000 10000000 03000000 474e5500 ............GNU.