From b4cbbe8f7294070cc93a71ace78f134965ddad82 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Thu, 8 Jun 2017 17:24:50 +0200 Subject: S/390: Add support for pgste marker This patch adds a new S/390 specific segment type: PT_S390_PGSTE. For binaries marked with that segment the kernel will allocate 4k page tables. The only user so far will be qemu. ld/ChangeLog: 2017-06-23 Andreas Krebbel * Makefile.in: Add s390.em as build dependency. * emulparams/elf64_s390.sh (EXTRA_EM_FILE): Add s390.em. * emultempl/s390.em: New file. * gen-doc.texi: Add documentation for --s390-pgste option. * ld.texinfo: Likewise. include/ChangeLog: 2017-06-23 Andreas Krebbel * elf/s390.h (PT_S390_PGSTE): Define macro. binutils/ChangeLog: 2017-06-23 Andreas Krebbel * readelf.c (get_s390_segment_type): Add support for the new segment type PT_S390_PGSTE. (get_segment_type): Call get_s390_segment_type. elfcpp/ChangeLog: 2017-06-23 Andreas Krebbel * elfcpp.h (enum PT): Add PT_S390_PGSTE to enum. bfd/ChangeLog: 2017-06-23 Andreas Krebbel * elf-s390.h: New file. * elf64-s390.c (struct elf_s390_link_hash_table): Add params field. (elf_s390_additional_program_headers): New function. (elf_s390_modify_segment_map): New function. (bfd_elf_s390_set_options): New function. (elf_backend_additional_program_headers) (elf_backend_modify_segment_map): Add macro definitions. --- elfcpp/elfcpp.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'elfcpp') diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h index cce40d4..82eb37f 100644 --- a/elfcpp/elfcpp.h +++ b/elfcpp/elfcpp.h @@ -515,7 +515,9 @@ enum PT // Platform architecture compatibility information PT_AARCH64_ARCHEXT = 0x70000000, // Exception unwind tables - PT_AARCH64_UNWIND = 0x70000001 + PT_AARCH64_UNWIND = 0x70000001, + // 4k page table size + PT_S390_PGSTE = 0x70000000, }; // The valid bit flags found in the Phdr p_flags field. -- cgit v1.1