X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femulparams%2Felf_x86_64.sh;h=c678479d24056c5e70132b2d7830dc7c5b69b2d7;hb=6c19b93bcd0d136f7be4d1e1e3f2e8d7b5917009;hp=449ccc90bd8d0f24ad53be99daa53b58210eb506;hpb=e4818e07f37389f16dae885e0e16abee5e83b038;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh index 449ccc90bd..c678479d24 100644 --- a/ld/emulparams/elf_x86_64.sh +++ b/ld/emulparams/elf_x86_64.sh @@ -1,19 +1,32 @@ +. ${srcdir}/emulparams/plt_unwind.sh +. ${srcdir}/emulparams/extern_protected_data.sh +. ${srcdir}/emulparams/dynamic_undefined_weak.sh +. ${srcdir}/emulparams/reloc_overflow.sh +. ${srcdir}/emulparams/call_nop.sh +. ${srcdir}/emulparams/cet.sh SCRIPT_NAME=elf ELFSIZE=64 OUTPUT_FORMAT="elf64-x86-64" +CHECK_RELOCS_AFTER_OPEN_INPUT=yes +NO_REL_RELOCS=yes TEXT_START_ADDR=0x400000 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" -NONPAGED_TEXT_START_ADDR=0x400000 ARCH="i386:x86-64" MACHINE= -NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes GENERATE_PIE_SCRIPT=yes NO_SMALL_DATA=yes LARGE_SECTIONS=yes -SEPARATE_GOTPLT=24 +LARGE_BSS_AFTER_BSS= +SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0" +IREL_IN_PLT= +# Reuse TINY_READONLY_SECTION which is placed right after .plt section. +TINY_READONLY_SECTION=" +.plt.got ${RELOCATING-0} : { *(.plt.got) } +.plt.sec ${RELOCATING-0} : { *(.plt.sec) } +" if [ "x${host}" = "x${target}" ]; then case " $EMULATION_LIBPATH " in @@ -27,10 +40,22 @@ fi case "$target" in x86_64*-linux*|i[3-7]86-*-linux-*) case "$EMULATION_NAME" in - *64*) LIBPATH_SUFFIX=64 ;; + *64*) + LIBPATH_SUFFIX=64 + PARSE_AND_LIST_OPTIONS_BNDPLT=' + fprintf (file, _("\ + -z bndplt Always generate BND prefix in PLT entries\n")); +' + PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT=' + else if (strcmp (optarg, "bndplt") == 0) + link_info.bndplt = TRUE; +' + PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_BNDPLT" + PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT" + ;; esac ;; - *-*-solaris2*) + *-*-solaris2*) LIBPATH_SUFFIX=/amd64 ELF_INTERPRETER_NAME=\"/lib/amd64/ld.so.1\" ;;