]> granicus.if.org Git - llvm/commitdiff
[yaml2obj] Support PT_GNU_STACK and PT_GNU_RELRO
authorFangrui Song <maskray@google.com>
Wed, 4 Sep 2019 09:19:31 +0000 (09:19 +0000)
committerFangrui Song <maskray@google.com>
Wed, 4 Sep 2019 09:19:31 +0000 (09:19 +0000)
PT_GNU_STACK is used in an llvm-objcopy test.

I plan to use PT_GNU_RELRO in a patch to improve nested segment
processing in llvm-objcopy (PR42963).

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D67146

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370857 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ObjectYAML/ELFYAML.cpp
test/tools/llvm-objcopy/ELF/marker-segment.test
test/tools/yaml2obj/program-header.yaml

index 6f05d7ddc1aa6d4f292543c06436404d0e9524dc..a81d27eed6b890f4fdb7c3383e43a3359056143a 100644 (file)
@@ -52,6 +52,8 @@ void ScalarEnumerationTraits<ELFYAML::ELF_PT>::enumeration(
   ECase(PT_PHDR);
   ECase(PT_TLS);
   ECase(PT_GNU_EH_FRAME);
+  ECase(PT_GNU_STACK);
+  ECase(PT_GNU_RELRO);
 #undef ECase
   IO.enumFallback<Hex32>(Value);
 }
index 226d21ccba971e406d502c2ee8b04ecff7aa1319..548def4334acefe2cc1599e2fee4fdc4f3a726a1 100644 (file)
@@ -43,7 +43,7 @@ ProgramHeaders:
     Align: 0x1000
     Sections:
       - Section: .data
-  - Type: 0x6474e551 # GNU_STACK
+  - Type: PT_GNU_STACK
     Flags: [ PF_R, PF_W ]
     VAddr: 0x0000
     PAddr: 0x0000
index b5fac89cdc0f1d1cabeeca66942395721232a278..4072e274b26fbb3079a14a51c734309b590ffc97 100644 (file)
@@ -37,6 +37,9 @@ ProgramHeaders:
     PAddr: 0xFFFF2000
     Sections:
       - Section: .data
+  - Type: PT_GNU_EH_FRAME
+  - Type: PT_GNU_STACK
+  - Type: PT_GNU_RELRO
 
 #CHECK:     ProgramHeaders [
 #CHECK-NEXT:   ProgramHeader {
@@ -64,6 +67,15 @@ ProgramHeaders:
 #CHECK-NEXT:    ]
 #CHECK-NEXT:    Alignment: 4096
 #CHECK-NEXT:  }
+#CHECK-NEXT:  ProgramHeader {
+#CHECK-NEXT:    Type: PT_GNU_EH_FRAME (0x6474E550)
+#CHECK:       }
+#CHECK-NEXT:  ProgramHeader {
+#CHECK-NEXT:    Type: PT_GNU_STACK (0x6474E551)
+#CHECK:       }
+#CHECK-NEXT:  ProgramHeader {
+#CHECK-NEXT:    Type: PT_GNU_RELRO (0x6474E552)
+#CHECK:       }
 #CHECK-NEXT:]
 
 ## Check we do not allow referencing sections that do not exist.