[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