From d303a449f2c523cd0547374a3a124e8c68bc9930 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 3 Jul 2001 17:40:14 +0000 Subject: [PATCH] 2001-07-03 Jakub Jelinek * scripttempl/elf.sc (DYNAMIC_PAD): New variable. (DYNAMIC): Use it to reserve few dynamic entries for post-linking tools. --- ld/ChangeLog | 6 ++++++ ld/scripttempl/elf.sc | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 9fd85ed5ce..f9c10719f7 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2001-07-03 Jakub Jelinek + + * scripttempl/elf.sc (DYNAMIC_PAD): New variable. + (DYNAMIC): Use it to reserve few dynamic entries for + post-linking tools. + 2001-06-27 Alan Modra * emulparams/hppa64linux.sh: New file. diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 3c1bfb40c1..e32348c0a9 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -32,6 +32,8 @@ # combination of .init sections. # FINI_START, FINI_END - statements just before and just after # combination of .fini sections. +# DYNAMIC_PAD - script to insert pad at end of .dynamic section. +# Setting this to " " will result in no .dynamic padding. # # When adding sections, do note that the names of some sections are used # when specifying the start address of the next. @@ -66,7 +68,14 @@ test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8" test "$LD_FLAG" = "N" && DATA_ADDR=. INTERP=".interp ${RELOCATING-0} : { *(.interp) }" PLT=".plt ${RELOCATING-0} : { *(.plt) }" -DYNAMIC=".dynamic ${RELOCATING-0} : { *(.dynamic) }" +test -z "$DYNAMIC_PAD" && test -n "$RELOCATING" && DYNAMIC_PAD=" + /* Leave some space in .dynamic section, so that + post-linking utilities can add new dynamic tags. */ + FILL(0) . += 6 * ${ELFSIZE} / 4;" +DYNAMIC=".dynamic ${RELOCATING-0} : + { + *(.dynamic) $DYNAMIC_PAD + }" RODATA=".rodata ${RELOCATING-0} : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} }" SBSS2=".sbss2 ${RELOCATING-0} : { *(.sbss2) ${RELOCATING+*(.sbss2.*)} ${RELOCATING+*(.gnu.linkonce.sb2.*)} }" SDATA2=".sdata2 ${RELOCATING-0} : { *(.sdata2) ${RELOCATING+*(.sdata2.*)} ${RELOCATING+*(.gnu.linkonce.s2.*)} }"