This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] ld: Add OTHER_PLT_SECTIONS
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Binutils <binutils at sourceware dot org>
- Date: Sun, 12 Nov 2017 07:22:55 -0800
- Subject: Re: [PATCH] ld: Add OTHER_PLT_SECTIONS
- Authentication-results: sourceware.org; auth=none
- References: <20171109232440.GA11352@gmail.com>
On Thu, Nov 9, 2017 at 3:24 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> OTHER_PLT_SECTIONS contains sections which should be placed right after
> .plt section.
>
> Any comments?
>
> H.J.
> * 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.
> ---
> ld/emulparams/elf32_x86_64.sh | 4 ++--
> ld/emulparams/elf_i386.sh | 4 ++--
> ld/emulparams/elf_iamcu.sh | 4 ++--
> ld/emulparams/elf_x86_64.sh | 4 ++--
> ld/scripttempl/elf.sc | 5 +++--
> 5 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/ld/emulparams/elf32_x86_64.sh b/ld/emulparams/elf32_x86_64.sh
> index 03f9d83056..9ce6533bd9 100644
> --- a/ld/emulparams/elf32_x86_64.sh
> +++ b/ld/emulparams/elf32_x86_64.sh
> @@ -21,8 +21,8 @@ LARGE_SECTIONS=yes
> 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="
> +# These sections are placed right after .plt section.
> +OTHER_PLT_SECTIONS="
> .plt.got ${RELOCATING-0} : { *(.plt.got) }
> .plt.sec ${RELOCATING-0} : { *(.plt.sec) }
> "
> diff --git a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
> index 084497c230..2cef106e3d 100644
> --- a/ld/emulparams/elf_i386.sh
> +++ b/ld/emulparams/elf_i386.sh
> @@ -17,8 +17,8 @@ GENERATE_PIE_SCRIPT=yes
> NO_SMALL_DATA=yes
> SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
> IREL_IN_PLT=
> -# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
> -TINY_READONLY_SECTION="
> +# These sections are placed right after .plt section.
> +OTHER_PLT_SECTIONS="
> .plt.got ${RELOCATING-0} : { *(.plt.got) }
> .plt.sec ${RELOCATING-0} : { *(.plt.sec) }
> "
> diff --git a/ld/emulparams/elf_iamcu.sh b/ld/emulparams/elf_iamcu.sh
> index 863027b57b..d910b653c3 100644
> --- a/ld/emulparams/elf_iamcu.sh
> +++ b/ld/emulparams/elf_iamcu.sh
> @@ -17,8 +17,8 @@ GENERATE_PIE_SCRIPT=yes
> NO_SMALL_DATA=yes
> SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
> IREL_IN_PLT=
> -# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
> -TINY_READONLY_SECTION="
> +# These sections are placed right after .plt section.
> +OTHER_PLT_SECTIONS="
> .plt.got ${RELOCATING-0} : { *(.plt.got) }
> "
>
> diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
> index 09f3cdac07..d8c6e54894 100644
> --- a/ld/emulparams/elf_x86_64.sh
> +++ b/ld/emulparams/elf_x86_64.sh
> @@ -21,8 +21,8 @@ LARGE_SECTIONS=yes
> 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="
> +# These sections are placed right after .plt section.
> +OTHER_PLT_SECTIONS="
> .plt.got ${RELOCATING-0} : { *(.plt.got) }
> .plt.sec ${RELOCATING-0} : { *(.plt.sec) }
> "
> diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
> index c0845c5952..9f291b359f 100644
> --- a/ld/scripttempl/elf.sc
> +++ b/ld/scripttempl/elf.sc
> @@ -37,6 +37,7 @@
> # writeable data sections.
> # OTHER_GOT_SYMBOLS - symbols defined just before .got.
> # OTHER_GOT_SECTIONS - sections just after .got.
> +# OTHER_PLT_SECTIONS - sections just after .plt.
> # OTHER_SDATA_SECTIONS - sections just after .sdata.
> # OTHER_BSS_SYMBOLS - symbols that appear at the start of the
> # .bss section besides __bss_start.
> @@ -484,7 +485,7 @@ cat <<EOF
> ${RELOCATING+${INIT_END}}
> } ${FILL}
>
> - ${TEXT_PLT+${PLT_NEXT_DATA-${PLT}}}
> + ${TEXT_PLT+${PLT_NEXT_DATA-${PLT} ${OTHER_PLT_SECTIONS}}}
> ${TINY_READONLY_SECTION}
> .text ${RELOCATING-0} :
> {
> @@ -549,7 +550,7 @@ cat <<EOF
> /* These sections are generated by the Sun/Oracle C++ compiler. */
> .exception_ranges ${RELOCATING-0} : ONLY_IF_RO { *(.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
> the same address within the page on the next page up. */
> --
> 2.13.6
>
I am checking it in.
--
H.J.