[llvm] 9597971 - Revert "[ObjectYAML][ELF] Take alignment into account when generating notes (#118157)"
Igor Kudrin via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 2 18:34:46 PST 2024
Author: Igor Kudrin
Date: 2024-12-02T18:34:27-08:00
New Revision: 95979717e1122d4bb473efef2447ae92c24c9381
URL: https://github.com/llvm/llvm-project/commit/95979717e1122d4bb473efef2447ae92c24c9381
DIFF: https://github.com/llvm/llvm-project/commit/95979717e1122d4bb473efef2447ae92c24c9381.diff
LOG: Revert "[ObjectYAML][ELF] Take alignment into account when generating notes (#118157)"
This reverts commit 1724188c19f363c877fcf1bca86d92af3864b338.
Some build bots reported a failure in the updated test
Added:
Modified:
llvm/lib/ObjectYAML/ELFEmitter.cpp
llvm/test/tools/yaml2obj/ELF/note-section.yaml
Removed:
################################################################################
diff --git a/llvm/lib/ObjectYAML/ELFEmitter.cpp b/llvm/lib/ObjectYAML/ELFEmitter.cpp
index 001e701bd0b80d..476334024151a9 100644
--- a/llvm/lib/ObjectYAML/ELFEmitter.cpp
+++ b/llvm/lib/ObjectYAML/ELFEmitter.cpp
@@ -1799,20 +1799,6 @@ void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
if (!Section.Notes)
return;
- unsigned Align;
- switch (SHeader.sh_addralign) {
- case 0:
- case 4:
- Align = 4;
- break;
- case 8:
- Align = 8;
- break;
- default:
- reportError(Section.Name + ": invalid alignment for a note section: 0x" +
- Twine::utohexstr(SHeader.sh_addralign));
- }
-
uint64_t Offset = CBA.tell();
for (const ELFYAML::NoteEntry &NE : *Section.Notes) {
// Write name size.
@@ -1834,15 +1820,14 @@ void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
if (!NE.Name.empty()) {
CBA.write(NE.Name.data(), NE.Name.size());
CBA.write('\0');
+ CBA.padToAlignment(4);
}
// Write description and padding.
if (NE.Desc.binary_size() != 0) {
- CBA.padToAlignment(Align);
CBA.writeAsBinary(NE.Desc);
+ CBA.padToAlignment(4);
}
-
- CBA.padToAlignment(Align);
}
SHeader.sh_size = CBA.tell() - Offset;
diff --git a/llvm/test/tools/yaml2obj/ELF/note-section.yaml b/llvm/test/tools/yaml2obj/ELF/note-section.yaml
index 26b95e1c2379b2..80359c4ec01833 100644
--- a/llvm/test/tools/yaml2obj/ELF/note-section.yaml
+++ b/llvm/test/tools/yaml2obj/ELF/note-section.yaml
@@ -333,132 +333,3 @@ Sections:
- Name: ABC
Desc: '123456'
Type: NT_VERSION
-
-## Check that an incorrect alignment is reported
-
-# RUN: not yaml2obj --docnum=16 %s 2>&1 | FileCheck %s --check-prefix=ERR_ALIGN1
-# ERR_ALIGN1: error: .note.foo: invalid alignment for a note section: 0x1
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
-Sections:
- - Name: .note.foo
- Type: SHT_NOTE
- AddressAlign: 1
- Notes:
- - Type: 0x1
-
-## Check that note entries and their `Desc` fields are aligned according to the
-## specified section alignment
-
-# RUN: yaml2obj --docnum=17 %s -o - | \
-# RUN: llvm-readobj --sections --section-data --notes - | \
-# RUN: FileCheck %s --check-prefix=TEST17
-
-# TEST17: Name: .note.foo4
-# TEST17: SectionData (
-# TEST17-NEXT: 0000: 05000000 02000000 01000000 41424344 |............ABCD|
-# TEST17-NEXT: 0010: 00000000 01020000 00000000 03000000 |................|
-# TEST17-NEXT: 0020: 02000000 03040500 04000000 00000000 |................|
-# TEST17-NEXT: 0030: 03000000 474E5500 |....GNU.|
-# TEST17-NEXT: )
-# TEST17: Name: .note.foo8
-# TEST17: SectionData (
-# TEST17-NEXT: 0000: 05000000 02000000 01000000 41424344 |............ABCD|
-# TEST17-NEXT: 0010: 00000000 00000000 01020000 00000000 |................|
-# TEST17-NEXT: 0020: 00000000 03000000 02000000 00000000 |................|
-# TEST17-NEXT: 0030: 03040500 00000000 04000000 00000000 |................|
-# TEST17-NEXT: 0040: 03000000 474E5500 |....GNU.|
-# TEST17-NEXT: )
-# TEST17: NoteSections [
-# TEST17-NEXT: NoteSection {
-# TEST17-NEXT: Name: .note.foo4
-# TEST17-NEXT: Offset:
-# TEST17-NEXT: Size:
-# TEST17-NEXT: Notes [
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner: ABCD
-# TEST17-NEXT: Data size: 0x2
-# TEST17-NEXT: Type: NT_VERSION (version)
-# TEST17-NEXT: Description data (
-# TEST17-NEXT: 0000: 0102 |..|
-# TEST17-NEXT: )
-# TEST17-NEXT: }
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner:
-# TEST17-NEXT: Data size: 0x3
-# TEST17-NEXT: Type: NT_ARCH (architecture)
-# TEST17-NEXT: Description data (
-# TEST17-NEXT: 0000: 030405 |...|
-# TEST17-NEXT: )
-# TEST17-NEXT: }
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner: GNU
-# TEST17-NEXT: Data size: 0x0
-# TEST17-NEXT: Type: NT_GNU_BUILD_ID (unique build ID bitstring)
-# TEST17-NEXT: Build ID:
-# TEST17-NEXT: }
-# TEST17-NEXT: ]
-# TEST17-NEXT: }
-# TEST17-NEXT: NoteSection {
-# TEST17-NEXT: Name: .note.foo8
-# TEST17-NEXT: Offset:
-# TEST17-NEXT: Size:
-# TEST17-NEXT: Notes [
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner: ABCD
-# TEST17-NEXT: Data size: 0x2
-# TEST17-NEXT: Type: NT_VERSION (version)
-# TEST17-NEXT: Description data (
-# TEST17-NEXT: 0000: 0102 |..|
-# TEST17-NEXT: )
-# TEST17-NEXT: }
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner:
-# TEST17-NEXT: Data size: 0x3
-# TEST17-NEXT: Type: NT_ARCH (architecture)
-# TEST17-NEXT: Description data (
-# TEST17-NEXT: 0000: 030405 |...|
-# TEST17-NEXT: )
-# TEST17-NEXT: }
-# TEST17-NEXT: {
-# TEST17-NEXT: Owner: GNU
-# TEST17-NEXT: Data size: 0x0
-# TEST17-NEXT: Type: NT_GNU_BUILD_ID (unique build ID bitstring)
-# TEST17-NEXT: Build ID:
-# TEST17-NEXT: }
-# TEST17-NEXT: ]
-# TEST17-NEXT: }
-# TEST17-NEXT: ]
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
-Sections:
- - Name: .note.foo4
- Type: SHT_NOTE
- AddressAlign: 4
- Notes:
- - Name: ABCD
- Type: NT_VERSION
- Desc: 0102
- - Type: NT_ARCH
- Desc: 030405
- - Name: GNU
- Type: NT_GNU_BUILD_ID
- - Name: .note.foo8
- Type: SHT_NOTE
- AddressAlign: 8
- Notes:
- - Name: ABCD
- Type: NT_VERSION
- Desc: 0102
- - Type: NT_ARCH
- Desc: 030405
- - Name: GNU
- Type: NT_GNU_BUILD_ID
More information about the llvm-commits
mailing list