summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-09-04 09:19:31 +0000
committerFangrui Song <maskray@google.com>2019-09-04 09:19:31 +0000
commit441d450115f545c673f593fc62eccccb88167c9b (patch)
tree3fd13bb77bdbf64ed563a3d05fbda46b9c41c1af
parent42fb94993d8ac15e9fecf74ce6a7b9b2b313d01a (diff)
downloadbcm5719-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.cpp2
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/marker-segment.test2
-rw-r--r--llvm/test/tools/yaml2obj/program-header.yaml12
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.
OpenPOWER on IntegriCloud