* scripttempl/elf.sc (INTERP): Delete. Move definition to..
authorAlan Modra <amodra@gmail.com>
Tue, 17 Oct 2006 13:55:11 +0000 (13:55 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 17 Oct 2006 13:55:11 +0000 (13:55 +0000)
(INITIAL_READONLY_SECTIONS): ..here.
* emulparams/criself.sh (INITIAL_READONLY_SECTIONS): Include .interp.
* emulparams/elf32bmip.sh (INITIAL_READONLY_SECTIONS): Ditto.
* emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Ditto.

ld/ChangeLog
ld/emulparams/criself.sh
ld/emulparams/elf32bmip.sh
ld/emulparams/elf32bmipn32-defs.sh
ld/scripttempl/elf.sc

index d7907c6..e4ffb01 100644 (file)
@@ -1,5 +1,13 @@
 2006-10-17  Alan Modra  <amodra@bigpond.net.au>
 
+       * scripttempl/elf.sc (INTERP): Delete.  Move definition to..
+       (INITIAL_READONLY_SECTIONS): ..here.
+       * emulparams/criself.sh (INITIAL_READONLY_SECTIONS): Include .interp.
+       * emulparams/elf32bmip.sh (INITIAL_READONLY_SECTIONS): Ditto.
+       * emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Ditto.
+
+2006-10-17  Alan Modra  <amodra@bigpond.net.au>
+
        * ldlang.c (strip_excluded_output_sections): Do strip sections
        that define syms, but don't ignore them.
        * ld.texinfo (Output Section Discarding): Revise.
index 0478f34..1d374ae 100644 (file)
@@ -13,7 +13,12 @@ ALIGNMENT=32
 TEXT_START_ADDR=0
 
 # Put crt0 for flash/eprom etc. in this section.
-INITIAL_READONLY_SECTIONS='.startup : { KEEP(*(.startup)) }'
+INITIAL_READONLY_SECTIONS=
+if test -z "${CREATE_SHLIB}"; then
+  INITIAL_READONLY_SECTIONS=".interp       ${RELOCATING-0} : { *(.interp) }"
+fi
+INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
+  .startup : { KEEP(*(.startup)) }"
 
 # Setting __Stext to . in TEXT_START_SYMBOLS doesn't get what we want
 # most of the time, which is the start of all read-only sections;
index 3501ddf..8fda60b 100644 (file)
@@ -12,7 +12,11 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 NONPAGED_TEXT_START_ADDR=0x0400000
 SHLIB_TEXT_START_ADDR=0x5ffe0000
 TEXT_DYNAMIC=
-INITIAL_READONLY_SECTIONS="
+INITIAL_READONLY_SECTIONS=
+if test -z "${CREATE_SHLIB}"; then
+  INITIAL_READONLY_SECTIONS=".interp       ${RELOCATING-0} : { *(.interp) }"
+fi
+INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
   .reginfo      ${RELOCATING-0} : { *(.reginfo) }
 "
 OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
index 024aebe..4091ff4 100644 (file)
@@ -57,7 +57,12 @@ TEXT_START_SYMBOLS='_ftext = . ;'
 DATA_START_SYMBOLS='_fdata = . ;'
 OTHER_BSS_SYMBOLS='_fbss = .;'
 
-INITIAL_READONLY_SECTIONS=".reginfo      ${RELOCATING-0} : { *(.reginfo) }"
+INITIAL_READONLY_SECTIONS=
+if test -z "${CREATE_SHLIB}"; then
+  INITIAL_READONLY_SECTIONS=".interp       ${RELOCATING-0} : { *(.interp) }"
+fi
+INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
+  .reginfo      ${RELOCATING-0} : { *(.reginfo) }"
 # Discard any .MIPS.content* or .MIPS.events* sections.  The linker
 # doesn't know how to adjust them.
 OTHER_SECTIONS="/DISCARD/ : { *(.MIPS.content*) *(.MIPS.events*) }"
index 738f21f..7ee4c1c 100644 (file)
@@ -103,7 +103,9 @@ if test -n "${COMMONPAGESIZE}"; then
   DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);"
   DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);"
 fi
-INTERP=".interp       ${RELOCATING-0} : { *(.interp) }"
+if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then
+  INITIAL_READONLY_SECTIONS=".interp       ${RELOCATING-0} : { *(.interp) }"
+fi
 if test -z "$PLT"; then
   PLT=".plt          ${RELOCATING-0} : { *(.plt) }"
 fi
@@ -259,7 +261,6 @@ SECTIONS
   ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR}); . = ${TEXT_BASE_ADDRESS};}}}
   ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
   ${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
-  ${CREATE_SHLIB-${INTERP}}
   ${INITIAL_READONLY_SECTIONS}
   ${TEXT_DYNAMIC+${DYNAMIC}}
   .hash         ${RELOCATING-0} : { *(.hash) }