This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ld: Add OTHER_PLT_SECTIONS


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]