ld: Add OTHER_PLT_SECTIONS
OTHER_PLT_SECTIONS contains sections which should be placed right after .plt section. * emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): Renamed to ... (OTHER_PLT_SECTIONS): This. * emulparams/elf_i386.sh: Likewise. * emulparams/elf_iamcu.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * scripttempl/elf.sc: Place ${OTHER_PLT_SECTIONS} just after .plt.
This commit is contained in:
parent
e3e53eed9c
commit
ce3ad33357
11
ld/ChangeLog
11
ld/ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2017-11-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): Renamed
|
||||||
|
to ...
|
||||||
|
(OTHER_PLT_SECTIONS): This.
|
||||||
|
* emulparams/elf_i386.sh: Likewise.
|
||||||
|
* emulparams/elf_iamcu.sh: Likewise.
|
||||||
|
* emulparams/elf_x86_64.sh: Likewise.
|
||||||
|
* scripttempl/elf.sc: Place ${OTHER_PLT_SECTIONS} just after
|
||||||
|
.plt.
|
||||||
|
|
||||||
2017-11-09 H.J. Lu <hongjiu.lu@intel.com>
|
2017-11-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* emultempl/elf32.em (gld${EMULATION_NAME}_get_script): Reformat
|
* emultempl/elf32.em (gld${EMULATION_NAME}_get_script): Reformat
|
||||||
|
|
|
@ -21,8 +21,8 @@ LARGE_SECTIONS=yes
|
||||||
LARGE_BSS_AFTER_BSS=
|
LARGE_BSS_AFTER_BSS=
|
||||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||||
IREL_IN_PLT=
|
IREL_IN_PLT=
|
||||||
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
|
# These sections are placed right after .plt section.
|
||||||
TINY_READONLY_SECTION="
|
OTHER_PLT_SECTIONS="
|
||||||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||||||
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
||||||
"
|
"
|
||||||
|
|
|
@ -17,8 +17,8 @@ GENERATE_PIE_SCRIPT=yes
|
||||||
NO_SMALL_DATA=yes
|
NO_SMALL_DATA=yes
|
||||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
||||||
IREL_IN_PLT=
|
IREL_IN_PLT=
|
||||||
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
|
# These sections are placed right after .plt section.
|
||||||
TINY_READONLY_SECTION="
|
OTHER_PLT_SECTIONS="
|
||||||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||||||
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
||||||
"
|
"
|
||||||
|
|
|
@ -17,8 +17,8 @@ GENERATE_PIE_SCRIPT=yes
|
||||||
NO_SMALL_DATA=yes
|
NO_SMALL_DATA=yes
|
||||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
||||||
IREL_IN_PLT=
|
IREL_IN_PLT=
|
||||||
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
|
# These sections are placed right after .plt section.
|
||||||
TINY_READONLY_SECTION="
|
OTHER_PLT_SECTIONS="
|
||||||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@ LARGE_SECTIONS=yes
|
||||||
LARGE_BSS_AFTER_BSS=
|
LARGE_BSS_AFTER_BSS=
|
||||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||||
IREL_IN_PLT=
|
IREL_IN_PLT=
|
||||||
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
|
# These sections are placed right after .plt section.
|
||||||
TINY_READONLY_SECTION="
|
OTHER_PLT_SECTIONS="
|
||||||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||||||
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
|
||||||
"
|
"
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
# writeable data sections.
|
# writeable data sections.
|
||||||
# OTHER_GOT_SYMBOLS - symbols defined just before .got.
|
# OTHER_GOT_SYMBOLS - symbols defined just before .got.
|
||||||
# OTHER_GOT_SECTIONS - sections just after .got.
|
# OTHER_GOT_SECTIONS - sections just after .got.
|
||||||
|
# OTHER_PLT_SECTIONS - sections just after .plt.
|
||||||
# OTHER_SDATA_SECTIONS - sections just after .sdata.
|
# OTHER_SDATA_SECTIONS - sections just after .sdata.
|
||||||
# OTHER_BSS_SYMBOLS - symbols that appear at the start of the
|
# OTHER_BSS_SYMBOLS - symbols that appear at the start of the
|
||||||
# .bss section besides __bss_start.
|
# .bss section besides __bss_start.
|
||||||
|
@ -484,7 +485,7 @@ cat <<EOF
|
||||||
${RELOCATING+${INIT_END}}
|
${RELOCATING+${INIT_END}}
|
||||||
} ${FILL}
|
} ${FILL}
|
||||||
|
|
||||||
${TEXT_PLT+${PLT_NEXT_DATA-${PLT}}}
|
${TEXT_PLT+${PLT_NEXT_DATA-${PLT} ${OTHER_PLT_SECTIONS}}}
|
||||||
${TINY_READONLY_SECTION}
|
${TINY_READONLY_SECTION}
|
||||||
.text ${RELOCATING-0} :
|
.text ${RELOCATING-0} :
|
||||||
{
|
{
|
||||||
|
@ -549,7 +550,7 @@ cat <<EOF
|
||||||
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
/* These sections are generated by the Sun/Oracle C++ compiler. */
|
||||||
.exception_ranges ${RELOCATING-0} : ONLY_IF_RO { *(.exception_ranges
|
.exception_ranges ${RELOCATING-0} : ONLY_IF_RO { *(.exception_ranges
|
||||||
.exception_ranges*) }
|
.exception_ranges*) }
|
||||||
${TEXT_PLT+${PLT_NEXT_DATA+${PLT}}}
|
${TEXT_PLT+${PLT_NEXT_DATA+${PLT} ${OTHER_PLT_SECTIONS}}}
|
||||||
|
|
||||||
/* Adjust the address for the data segment. We want to adjust up to
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
the same address within the page on the next page up. */
|
the same address within the page on the next page up. */
|
||||||
|
|
Loading…
Reference in New Issue