b4cbbe8f72
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 <krebbel@linux.vnet.ibm.com> * 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 <krebbel@linux.vnet.ibm.com> * elf/s390.h (PT_S390_PGSTE): Define macro. binutils/ChangeLog: 2017-06-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * 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 <krebbel@linux.vnet.ibm.com> * elfcpp.h (enum PT): Add PT_S390_PGSTE to enum. bfd/ChangeLog: 2017-06-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * 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.
38 lines
837 B
Bash
38 lines
837 B
Bash
SCRIPT_NAME=elf
|
|
ELFSIZE=64
|
|
OUTPUT_FORMAT="elf64-s390"
|
|
NO_REL_RELOCS=yes
|
|
TEXT_START_ADDR=0x1000000
|
|
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
|
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
|
ARCH="s390:64-bit"
|
|
MACHINE=
|
|
NOP=0x07070707
|
|
TEMPLATE_NAME=elf32
|
|
GENERATE_SHLIB_SCRIPT=yes
|
|
GENERATE_PIE_SCRIPT=yes
|
|
NO_SMALL_DATA=yes
|
|
EXTRA_EM_FILE=s390
|
|
IREL_IN_PLT=
|
|
|
|
# Treat a host that matches the target with the possible exception of "x"
|
|
# in the name as if it were native.
|
|
if test `echo "$host" | sed -e s/390x/390/` \
|
|
= `echo "$target" | sed -e s/390x/390/`; then
|
|
case " $EMULATION_LIBPATH " in
|
|
*" ${EMULATION_NAME} "*)
|
|
NATIVE=yes
|
|
esac
|
|
fi
|
|
|
|
# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first
|
|
# on Linux.
|
|
case "$target" in
|
|
s390*-linux*)
|
|
case "$EMULATION_NAME" in
|
|
*64*)
|
|
LIBPATH_SUFFIX=64 ;;
|
|
esac
|
|
;;
|
|
esac
|