diff options
author | Fangrui Song <maskray@google.com> | 2019-09-04 09:19:31 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-09-04 09:19:31 +0000 |
commit | 441d450115f545c673f593fc62eccccb88167c9b (patch) | |
tree | 3fd13bb77bdbf64ed563a3d05fbda46b9c41c1af | |
parent | 42fb94993d8ac15e9fecf74ce6a7b9b2b313d01a (diff) | |
download | bcm5719-llvm-441d450115f545c673f593fc62eccccb88167c9b.tar.gz bcm5719-llvm-441d450115f545c673f593fc62eccccb88167c9b.zip |
[yaml2obj] Support PT_GNU_STACK and PT_GNU_RELRO
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
llvm-svn: 370857
-rw-r--r-- | llvm/lib/ObjectYAML/ELFYAML.cpp | 2 | ||||
-rw-r--r-- | llvm/test/tools/llvm-objcopy/ELF/marker-segment.test | 2 | ||||
-rw-r--r-- | llvm/test/tools/yaml2obj/program-header.yaml | 12 |
3 files changed, 15 insertions, 1 deletions
diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp index 6f05d7ddc1a..a81d27eed6b 100644 --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -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); } diff --git a/llvm/test/tools/llvm-objcopy/ELF/marker-segment.test b/llvm/test/tools/llvm-objcopy/ELF/marker-segment.test index 226d21ccba9..548def4334a 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/marker-segment.test +++ b/llvm/test/tools/llvm-objcopy/ELF/marker-segment.test @@ -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 diff --git a/llvm/test/tools/yaml2obj/program-header.yaml b/llvm/test/tools/yaml2obj/program-header.yaml index b5fac89cdc0..4072e274b26 100644 --- a/llvm/test/tools/yaml2obj/program-header.yaml +++ b/llvm/test/tools/yaml2obj/program-header.yaml @@ -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. |