This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
ELF ld script optimisation
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: binutils at sourceware dot org
- Date: Wed, 22 Oct 2008 15:52:05 +1030
- Subject: ELF ld script optimisation
I've been playing with ideas for SPU dynamic libraries. One oddity is
that we don't want the dynamic sections loaded, since relocation
processing and symbol resolution will likely be done by the PPU, or at
least will happen on an image in PPU memory. NON_ALLOC_DYN puts all
the dynamic sections in a different place.
NO_REL*_RELOCS cuts down on unnecessary linker script statements.
Since that is a generally useful little optimisation, I'm committing
it now, before the SPU dynamic support is ready. I haven't enabled
this for all ELF targets, only those that use elf.sc and have no hint
that they might support both REL and RELA relocs.
* scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN):
Handle these defines.
* emulparams/criself.sh, * emulparams/crislinux.sh,
* emulparams/elf32am33lin.sh, * emulparams/elf32fr30.sh,
* emulparams/elf32_i860.sh, * emulparams/elf32ip2k.sh,
* emulparams/elf32mcore.sh, * emulparams/elf32ppccommon.sh,
* emulparams/elf32ppcwindiss.sh, * emulparams/elf32_sparc.sh,
* emulparams/elf32_spu.sh, * emulparams/elf32vax.sh,
* emulparams/elf64alpha.sh, * emulparams/elf64mmix.sh,
* emulparams/elf64ppc.sh, * emulparams/elf64_s390.sh,
* emulparams/elf64_sparc.sh, * emulparams/elf_s390.sh,
* emulparams/elf_x86_64.sh, * emulparams/h8300elf.sh,
* emulparams/hppa64linux.sh, * emulparams/hppalinux.sh,
* emulparams/m68kelf.sh, * emulparams/mn10200.sh,
* emulparams/pjelf.sh, * emulparams/ppclynx.sh,
* emulparams/shelf32.sh, * emulparams/shelf_nto.sh,
* emulparams/shelf.sh, * emulparams/shelf_vxworks.sh,
* emulparams/shlelf32_linux.sh, * emulparams/shlelf_linux.sh,
* emulparams/shlelf_nto.sh (NO_REL_RELOCS): Set.
* emulparams/arcelf.sh, * emulparams/elf32_i960.sh,
* emulparams/elf32openrisc.sh, * emulparams/elf_i386_be.sh,
* emulparams/elf_i386_ldso.sh, * emulparams/elf_i386.sh,
* emulparams/elf_i386_vxworks.sh, * emulparams/i386lynx.sh,
* emulparams/i386moss.sh, * emulparams/i386nto.sh,
* emulparams/or32elf.sh, * emulparams/scoreelf.sh (NO_RELA_RELOCS): Set.
Index: ld/scripttempl/elf.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf.sc,v
retrieving revision 1.85
diff -u -p -r1.85 elf.sc
--- ld/scripttempl/elf.sc 11 Jan 2008 09:11:17 -0000 1.85
+++ ld/scripttempl/elf.sc 21 Oct 2008 23:34:31 -0000
@@ -36,6 +36,9 @@
# DATA_PLT - .plt should be in data segment, not text segment.
# PLT_BEFORE_GOT - .plt just before .got when .plt is in data segement.
# BSS_PLT - .plt should be in bss segment
+# NO_REL_RELOCS - Don't include .rel.* sections in script
+# NO_RELA_RELOCS - Don't include .rela.* sections in script
+# NON_ALLOC_DYN - Place dynamic sections after data segment.
# TEXT_DYNAMIC - .dynamic in text segment, not data segment.
# EMBEDDED - whether this is for an embedded system.
# SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set
@@ -268,6 +271,11 @@ SECTIONS
${CREATE_PIE+${RELOCATING+. = ${SHLIB_TEXT_START_ADDR:-0} + SIZEOF_HEADERS;}}
${INITIAL_READONLY_SECTIONS}
.note.gnu.build-id : { *(.note.gnu.build-id) }
+EOF
+
+test -n "${RELOCATING+0}" || unset NON_ALLOC_DYN
+test -z "${NON_ALLOC_DYN}" || TEXT_DYNAMIC=
+cat > ldscripts/dyntmp.$$ <<EOF
${TEXT_DYNAMIC+${DYNAMIC}}
.hash ${RELOCATING-0} : { *(.hash) }
.gnu.hash ${RELOCATING-0} : { *(.gnu.hash) }
@@ -276,10 +284,10 @@ SECTIONS
.gnu.version ${RELOCATING-0} : { *(.gnu.version) }
.gnu.version_d ${RELOCATING-0}: { *(.gnu.version_d) }
.gnu.version_r ${RELOCATING-0}: { *(.gnu.version_r) }
-
EOF
+
if [ "x$COMBRELOC" = x ]; then
- COMBRELOCCAT=cat
+ COMBRELOCCAT="cat >> ldscripts/dyntmp.$$"
else
COMBRELOCCAT="cat > $COMBRELOC"
fi
@@ -316,27 +324,45 @@ eval $COMBRELOCCAT <<EOF
.rela.bss ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }
${REL_LARGE}
EOF
+
if [ -n "$COMBRELOC" ]; then
-cat <<EOF
+cat >> ldscripts/dyntmp.$$ <<EOF
.rel.dyn ${RELOCATING-0} :
{
EOF
-sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/ \1/' $COMBRELOC
-cat <<EOF
+sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rela\./d;s/^.*: { *\(.*\)}$/ \1/' $COMBRELOC >> ldscripts/dyntmp.$$
+cat >> ldscripts/dyntmp.$$ <<EOF
}
.rela.dyn ${RELOCATING-0} :
{
EOF
-sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/ \1/' $COMBRELOC
-cat <<EOF
+sed -e '/^[ ]*[{}][ ]*$/d;/:[ ]*$/d;/\.rel\./d;s/^.*: { *\(.*\)}/ \1/' $COMBRELOC >> ldscripts/dyntmp.$$
+cat >> ldscripts/dyntmp.$$ <<EOF
}
EOF
fi
-cat <<EOF
+
+cat >> ldscripts/dyntmp.$$ <<EOF
.rel.plt ${RELOCATING-0} : { *(.rel.plt) }
.rela.plt ${RELOCATING-0} : { *(.rela.plt) }
${OTHER_PLT_RELOC_SECTIONS}
+EOF
+if test -z "${NON_ALLOC_DYN}"; then
+ if test -z "${NO_REL_RELOCS}${NO_RELA_RELOCS}"; then
+ cat ldscripts/dyntmp.$$
+ else
+ if test -z "${NO_REL_RELOCS}"; then
+ sed -e '/^[ ]*\.rela\.[^}]*$/,/}/d' -e '/^[ ]*\.rela\./d' ldscripts/dyntmp.$$
+ fi
+ if test -z "${NO_RELA_RELOCS}"; then
+ sed -e '/^[ ]*\.rel\.[^}]*$/,/}/d' -e '/^[ ]*\.rel\./d' ldscripts/dyntmp.$$
+ fi
+ fi
+ rm -f ldscripts/dyntmp.$$
+fi
+
+cat <<EOF
.init ${RELOCATING-0} :
{
${RELOCATING+${INIT_START}}
@@ -464,7 +490,23 @@ cat <<EOF
${RELOCATING+${OTHER_END_SYMBOLS}}
${RELOCATING+${END_SYMBOLS-${USER_LABEL_PREFIX}_end = .; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
${RELOCATING+${DATA_SEGMENT_END}}
+EOF
+if test -n "${NON_ALLOC_DYN}"; then
+ if test -z "${NO_REL_RELOCS}${NO_RELA_RELOCS}"; then
+ cat ldscripts/dyntmp.$$
+ else
+ if test -z "${NO_REL_RELOCS}"; then
+ sed -e '/^[ ]*\.rela\.[^}]*$/,/}/d' -e '/^[ ]*\.rela\./d' ldscripts/dyntmp.$$
+ fi
+ if test -z "${NO_RELA_RELOCS}"; then
+ sed -e '/^[ ]*\.rel\.[^}]*$/,/}/d' -e '/^[ ]*\.rel\./d' ldscripts/dyntmp.$$
+ fi
+ fi
+ rm -f ldscripts/dyntmp.$$
+fi
+
+cat <<EOF
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
Index: ld/emulparams/arcelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/arcelf.sh,v
retrieving revision 1.4
diff -u -p -r1.4 arcelf.sh
--- ld/emulparams/arcelf.sh 9 Aug 2007 11:02:24 -0000 1.4
+++ ld/emulparams/arcelf.sh 21 Oct 2008 23:34:27 -0000
@@ -4,6 +4,7 @@ EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-littlearc"
LITTLE_OUTPUT_FORMAT="elf32-littlearc"
BIG_OUTPUT_FORMAT="elf32-bigarc"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x0
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=arc
Index: ld/emulparams/criself.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/criself.sh,v
retrieving revision 1.10
diff -u -p -r1.10 criself.sh
--- ld/emulparams/criself.sh 17 Oct 2006 13:55:11 -0000 1.10
+++ ld/emulparams/criself.sh 21 Oct 2008 23:34:27 -0000
@@ -5,6 +5,7 @@ TEMPLATE_NAME=elf32
# Symbols have underscore prepended.
OUTPUT_FORMAT="elf32-us-cris"
+NO_REL_RELOCS=yes
ARCH=cris
MAXPAGESIZE=32
ENTRY=__start
Index: ld/emulparams/crislinux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/crislinux.sh,v
retrieving revision 1.10
diff -u -p -r1.10 crislinux.sh
--- ld/emulparams/crislinux.sh 30 May 2006 16:45:32 -0000 1.10
+++ ld/emulparams/crislinux.sh 21 Oct 2008 23:34:27 -0000
@@ -2,6 +2,7 @@
MACHINE=
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-cris"
+NO_REL_RELOCS=yes
ARCH=cris
TEMPLATE_NAME=elf32
Index: ld/emulparams/elf32_i860.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32_i860.sh,v
retrieving revision 1.4
diff -u -p -r1.4 elf32_i860.sh
--- ld/emulparams/elf32_i860.sh 20 Jun 2006 02:22:14 -0000 1.4
+++ ld/emulparams/elf32_i860.sh 21 Oct 2008 23:34:27 -0000
@@ -5,6 +5,7 @@ EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-i860-little"
BIG_OUTPUT_FORMAT="elf32-i860"
LITTLE_OUTPUT_FORMAT="elf32-i860-little"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0
PAGE_SIZE=0x1000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/elf32_i960.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32_i960.sh,v
retrieving revision 1.2
diff -u -p -r1.2 elf32_i960.sh
--- ld/emulparams/elf32_i960.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/elf32_i960.sh 21 Oct 2008 23:34:27 -0000
@@ -1,6 +1,7 @@
SCRIPT_NAME=elf
TEMPLATE_NAME=elf32
OUTPUT_FORMAT="elf32-i960"
+NO_RELA_RELOCS=yes
ARCH=i960
MACHINE=
TEXT_START_ADDR=0
Index: ld/emulparams/elf32_sparc.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32_sparc.sh,v
retrieving revision 1.7
diff -u -p -r1.7 elf32_sparc.sh
--- ld/emulparams/elf32_sparc.sh 9 Aug 2007 11:02:24 -0000 1.7
+++ ld/emulparams/elf32_sparc.sh 21 Oct 2008 23:34:27 -0000
@@ -3,6 +3,7 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sparc"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf32_spu.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32_spu.sh,v
retrieving revision 1.5
diff -u -p -r1.5 elf32_spu.sh
--- ld/emulparams/elf32_spu.sh 6 Jun 2008 06:02:00 -0000 1.5
+++ ld/emulparams/elf32_spu.sh 21 Oct 2008 23:34:27 -0000
@@ -2,6 +2,7 @@
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=spuelf
OUTPUT_FORMAT="elf32-spu"
+NO_REL_RELOCS=yes
ARCH=spu
MACHINE=
ALIGNMENT=16
Index: ld/emulparams/elf32am33lin.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32am33lin.sh,v
retrieving revision 1.3
diff -u -p -r1.3 elf32am33lin.sh
--- ld/emulparams/elf32am33lin.sh 9 Aug 2007 11:02:24 -0000 1.3
+++ ld/emulparams/elf32am33lin.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-am33lin"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x8000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=mn10300
Index: ld/emulparams/elf32fr30.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32fr30.sh,v
retrieving revision 1.6
diff -u -p -r1.6 elf32fr30.sh
--- ld/emulparams/elf32fr30.sh 20 Jun 2006 02:22:14 -0000 1.6
+++ ld/emulparams/elf32fr30.sh 21 Oct 2008 23:34:27 -0000
@@ -3,6 +3,7 @@ SCRIPT_NAME=elf
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-fr30"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000
ARCH=fr30
MAXPAGESIZE=256
Index: ld/emulparams/elf32ip2k.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32ip2k.sh,v
retrieving revision 1.2
diff -u -p -r1.2 elf32ip2k.sh
--- ld/emulparams/elf32ip2k.sh 29 Aug 2003 00:34:27 -0000 1.2
+++ ld/emulparams/elf32ip2k.sh 21 Oct 2008 23:34:27 -0000
@@ -2,6 +2,7 @@ TEMPLATE_NAME=elf32
MACHINE=
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-ip2k"
+NO_REL_RELOCS=yes
# See also `include/elf/ip2k.h'
DATA_ADDR=0x01000100
TEXT_START_ADDR=0x02010000
Index: ld/emulparams/elf32mcore.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32mcore.sh,v
retrieving revision 1.16
diff -u -p -r1.16 elf32mcore.sh
--- ld/emulparams/elf32mcore.sh 9 Aug 2007 11:02:24 -0000 1.16
+++ ld/emulparams/elf32mcore.sh 21 Oct 2008 23:34:27 -0000
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-mcore-little"
BIG_OUTPUT_FORMAT="elf32-mcore-big"
LITTLE_OUTPUT_FORMAT="elf32-mcore-little"
+NO_REL_RELOCS=yes
PAGE_SIZE=0x1000
TARGET_PAGE_SIZE=0x400
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/elf32openrisc.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32openrisc.sh,v
retrieving revision 1.2
diff -u -p -r1.2 elf32openrisc.sh
--- ld/emulparams/elf32openrisc.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/elf32openrisc.sh 21 Oct 2008 23:34:27 -0000
@@ -1,6 +1,7 @@
MACHINE=
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-openrisc"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x10000
ARCH=openrisc
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/elf32ppccommon.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32ppccommon.sh,v
retrieving revision 1.2
diff -u -p -r1.2 elf32ppccommon.sh
--- ld/emulparams/elf32ppccommon.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/elf32ppccommon.sh 21 Oct 2008 23:34:27 -0000
@@ -5,6 +5,7 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-powerpc"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x01800000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf32ppcwindiss.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32ppcwindiss.sh,v
retrieving revision 1.2
diff -u -p -r1.2 elf32ppcwindiss.sh
--- ld/emulparams/elf32ppcwindiss.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/elf32ppcwindiss.sh 21 Oct 2008 23:34:27 -0000
@@ -1,6 +1,7 @@
TEMPLATE_NAME=elf32
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-powerpc"
+NO_REL_RELOCS=yes
ARCH=powerpc
MACHINE=
EMBEDDED=yes
Index: ld/emulparams/elf32vax.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32vax.sh,v
retrieving revision 1.3
diff -u -p -r1.3 elf32vax.sh
--- ld/emulparams/elf32vax.sh 9 Aug 2007 11:02:24 -0000 1.3
+++ ld/emulparams/elf32vax.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-vax"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000
case ${LD_FLAG} in
n|N) TEXT_START_ADDR=0x1000 ;;
Index: ld/emulparams/elf64_s390.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64_s390.sh,v
retrieving revision 1.11
diff -u -p -r1.11 elf64_s390.sh
--- ld/emulparams/elf64_s390.sh 9 Aug 2007 11:02:24 -0000 1.11
+++ ld/emulparams/elf64_s390.sh 21 Oct 2008 23:34:27 -0000
@@ -1,6 +1,7 @@
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-s390"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x80000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf64_sparc.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64_sparc.sh,v
retrieving revision 1.11
diff -u -p -r1.11 elf64_sparc.sh
--- ld/emulparams/elf64_sparc.sh 9 Aug 2007 11:02:24 -0000 1.11
+++ ld/emulparams/elf64_sparc.sh 21 Oct 2008 23:34:27 -0000
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
ELFSIZE=64
TEMPLATE_NAME=elf32
OUTPUT_FORMAT="elf64-sparc"
+NO_REL_RELOCS=yes
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="sparc:v9"
Index: ld/emulparams/elf64alpha.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64alpha.sh,v
retrieving revision 1.15
diff -u -p -r1.15 elf64alpha.sh
--- ld/emulparams/elf64alpha.sh 9 Aug 2007 11:02:24 -0000 1.15
+++ ld/emulparams/elf64alpha.sh 21 Oct 2008 23:34:27 -0000
@@ -4,6 +4,7 @@ ELFSIZE=64
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=alphaelf
OUTPUT_FORMAT="elf64-alpha"
+NO_REL_RELOCS=yes
TEXT_START_ADDR="0x120000000"
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf64mmix.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64mmix.sh,v
retrieving revision 1.5
diff -u -p -r1.5 elf64mmix.sh
--- ld/emulparams/elf64mmix.sh 30 May 2006 16:45:32 -0000 1.5
+++ ld/emulparams/elf64mmix.sh 21 Oct 2008 23:34:27 -0000
@@ -3,6 +3,7 @@ GENERATE_SHLIB_SCRIPT=yes
ELFSIZE=64
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf64-mmix"
+NO_REL_RELOCS=yes
ENTRY=_start.
# Default to 0 as mmixal does.
Index: ld/emulparams/elf64ppc.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64ppc.sh,v
retrieving revision 1.20
diff -u -p -r1.20 elf64ppc.sh
--- ld/emulparams/elf64ppc.sh 30 Sep 2008 15:04:34 -0000 1.20
+++ ld/emulparams/elf64ppc.sh 21 Oct 2008 23:34:27 -0000
@@ -5,6 +5,7 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf64-powerpc"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000000
#SEGMENT_SIZE=0x10000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/elf_i386.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_i386.sh,v
retrieving revision 1.8
diff -u -p -r1.8 elf_i386.sh
--- ld/emulparams/elf_i386.sh 9 Aug 2007 11:02:24 -0000 1.8
+++ ld/emulparams/elf_i386.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x08048000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf_i386_be.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_i386_be.sh,v
retrieving revision 1.5
diff -u -p -r1.5 elf_i386_be.sh
--- ld/emulparams/elf_i386_be.sh 9 Aug 2007 11:02:24 -0000 1.5
+++ ld/emulparams/elf_i386_be.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x80000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=i386
Index: ld/emulparams/elf_i386_ldso.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_i386_ldso.sh,v
retrieving revision 1.5
diff -u -p -r1.5 elf_i386_ldso.sh
--- ld/emulparams/elf_i386_ldso.sh 9 Aug 2007 11:02:24 -0000 1.5
+++ ld/emulparams/elf_i386_ldso.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x08048000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=i386
Index: ld/emulparams/elf_i386_vxworks.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_i386_vxworks.sh,v
retrieving revision 1.3
diff -u -p -r1.3 elf_i386_vxworks.sh
--- ld/emulparams/elf_i386_vxworks.sh 9 Aug 2007 11:02:24 -0000 1.3
+++ ld/emulparams/elf_i386_vxworks.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386-vxworks"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x08048000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf_s390.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_s390.sh,v
retrieving revision 1.8
diff -u -p -r1.8 elf_s390.sh
--- ld/emulparams/elf_s390.sh 9 Aug 2007 11:02:24 -0000 1.8
+++ ld/emulparams/elf_s390.sh 21 Oct 2008 23:34:27 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-s390"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x00400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/elf_x86_64.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_x86_64.sh,v
retrieving revision 1.20
diff -u -p -r1.20 elf_x86_64.sh
--- ld/emulparams/elf_x86_64.sh 9 Aug 2007 11:02:24 -0000 1.20
+++ ld/emulparams/elf_x86_64.sh 21 Oct 2008 23:34:27 -0000
@@ -1,6 +1,7 @@
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-x86-64"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/h8300elf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/h8300elf.sh,v
retrieving revision 1.5
diff -u -p -r1.5 h8300elf.sh
--- ld/emulparams/h8300elf.sh 23 Oct 2006 03:30:02 -0000 1.5
+++ ld/emulparams/h8300elf.sh 21 Oct 2008 23:34:27 -0000
@@ -3,6 +3,7 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-h8300"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x100
MAXPAGESIZE=2
TARGET_PAGE_SIZE=128
Index: ld/emulparams/hppa64linux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/hppa64linux.sh,v
retrieving revision 1.9
diff -u -p -r1.9 hppa64linux.sh
--- ld/emulparams/hppa64linux.sh 26 Oct 2006 00:31:59 -0000 1.9
+++ ld/emulparams/hppa64linux.sh 21 Oct 2008 23:34:28 -0000
@@ -5,6 +5,7 @@ SCRIPT_NAME=elf
ELFSIZE=64
# FIXME: this output format is for hpux.
OUTPUT_FORMAT="elf64-hppa-linux"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000
TARGET_PAGE_SIZE=0x10000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/hppalinux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/hppalinux.sh,v
retrieving revision 1.13
diff -u -p -r1.13 hppalinux.sh
--- ld/emulparams/hppalinux.sh 30 May 2006 16:45:32 -0000 1.13
+++ ld/emulparams/hppalinux.sh 21 Oct 2008 23:34:28 -0000
@@ -4,6 +4,7 @@
SCRIPT_NAME=elf
ELFSIZE=32
OUTPUT_FORMAT="elf32-hppa-linux"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000
TARGET_PAGE_SIZE=0x10000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/i386lynx.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/i386lynx.sh,v
retrieving revision 1.4
diff -u -p -r1.4 i386lynx.sh
--- ld/emulparams/i386lynx.sh 9 Aug 2007 11:02:24 -0000 1.4
+++ ld/emulparams/i386lynx.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
ENTRY=_main
TEXT_BASE=0x0
DYN_TEXT_BASE=0x00400000
Index: ld/emulparams/i386moss.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/i386moss.sh,v
retrieving revision 1.4
diff -u -p -r1.4 i386moss.sh
--- ld/emulparams/i386moss.sh 9 Aug 2007 11:02:24 -0000 1.4
+++ ld/emulparams/i386moss.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x00002000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=i386
Index: ld/emulparams/i386nto.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/i386nto.sh,v
retrieving revision 1.3
diff -u -p -r1.3 i386nto.sh
--- ld/emulparams/i386nto.sh 9 Aug 2007 11:02:24 -0000 1.3
+++ ld/emulparams/i386nto.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x08048000
TEXT_START_SYMBOLS='_btext = .;'
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/m68kelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/m68kelf.sh,v
retrieving revision 1.7
diff -u -p -r1.7 m68kelf.sh
--- ld/emulparams/m68kelf.sh 6 Mar 2008 12:29:52 -0000 1.7
+++ ld/emulparams/m68kelf.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-m68k"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x80000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/mn10200.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/mn10200.sh,v
retrieving revision 1.3
diff -u -p -r1.3 mn10200.sh
--- ld/emulparams/mn10200.sh 20 Jun 2006 02:22:14 -0000 1.3
+++ ld/emulparams/mn10200.sh 21 Oct 2008 23:34:28 -0000
@@ -5,6 +5,7 @@ SCRIPT_NAME=elf
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-mn10200"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x0
ARCH=mn10200
MACHINE=
Index: ld/emulparams/or32elf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/or32elf.sh,v
retrieving revision 1.3
diff -u -p -r1.3 or32elf.sh
--- ld/emulparams/or32elf.sh 20 Jun 2006 02:22:14 -0000 1.3
+++ ld/emulparams/or32elf.sh 21 Oct 2008 23:34:28 -0000
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-or32"
+NO_RELA_RELOCS=yes
TEXT_START_ADDR=0x1000000
TARGET_PAGE_SIZE=0x1000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/emulparams/pjelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/pjelf.sh,v
retrieving revision 1.3
diff -u -p -r1.3 pjelf.sh
--- ld/emulparams/pjelf.sh 20 Jun 2006 02:22:14 -0000 1.3
+++ ld/emulparams/pjelf.sh 21 Oct 2008 23:34:28 -0000
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-pj"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x1000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=pj
Index: ld/emulparams/ppclynx.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/ppclynx.sh,v
retrieving revision 1.3
diff -u -p -r1.3 ppclynx.sh
--- ld/emulparams/ppclynx.sh 9 Aug 2007 11:02:24 -0000 1.3
+++ ld/emulparams/ppclynx.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-powerpc"
+NO_REL_RELOCS=yes
TEXT_BASE=0x00002000
DYN_TEXT_BASE=0x00400000
TEXT_START_ADDR="(DEFINED(_DYNAMIC) ? ${DYN_TEXT_BASE} : ${TEXT_BASE})"
Index: ld/emulparams/scoreelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/scoreelf.sh,v
retrieving revision 1.2
diff -u -p -r1.2 scoreelf.sh
--- ld/emulparams/scoreelf.sh 9 Aug 2007 11:02:24 -0000 1.2
+++ ld/emulparams/scoreelf.sh 21 Oct 2008 23:34:28 -0000
@@ -4,6 +4,7 @@ TEMPLATE_NAME=elf32
OUTPUT_FORMAT="elf32-bigscore"
BIG_OUTPUT_FORMAT="elf32-bigscore"
LITTLE_OUTPUT_FORMAT="elf32-littlescore"
+NO_RELA_RELOCS=yes
GROUP="-lm -lc -lglsim -lgcc -lstdc++"
TEXT_START_ADDR=0x00000000
Index: ld/emulparams/shelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shelf.sh,v
retrieving revision 1.6
diff -u -p -r1.6 shelf.sh
--- ld/emulparams/shelf.sh 23 Dec 2004 12:27:45 -0000 1.6
+++ ld/emulparams/shelf.sh 21 Oct 2008 23:34:28 -0000
@@ -3,6 +3,7 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sh"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x1000
MAXPAGESIZE=128
ARCH=sh
Index: ld/emulparams/shelf32.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shelf32.sh,v
retrieving revision 1.5
diff -u -p -r1.5 shelf32.sh
--- ld/emulparams/shelf32.sh 22 Oct 2006 01:07:30 -0000 1.5
+++ ld/emulparams/shelf32.sh 21 Oct 2008 23:34:28 -0000
@@ -2,6 +2,7 @@
# sh[l]elf(32|64).sh parameter scripts.
SCRIPT_NAME=elf
OUTPUT_FORMAT=${OUTPUT_FORMAT-"elf32-sh64"}
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x1000
MAXPAGESIZE=128
ARCH=sh
Index: ld/emulparams/shelf_nto.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shelf_nto.sh,v
retrieving revision 1.2
diff -u -p -r1.2 shelf_nto.sh
--- ld/emulparams/shelf_nto.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/shelf_nto.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sh"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x08040000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=sh
Index: ld/emulparams/shelf_vxworks.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shelf_vxworks.sh,v
retrieving revision 1.1
diff -u -p -r1.1 shelf_vxworks.sh
--- ld/emulparams/shelf_vxworks.sh 4 Aug 2006 13:13:56 -0000 1.1
+++ ld/emulparams/shelf_vxworks.sh 21 Oct 2008 23:34:28 -0000
@@ -2,6 +2,7 @@
# shlelf_vxworks.sh
SCRIPT_NAME=elf
+NO_REL_RELOCS=yes
BIG_OUTPUT_FORMAT="elf32-sh-vxworks"
LITTLE_OUTPUT_FORMAT="elf32-shl-vxworks"
OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT"
Index: ld/emulparams/shlelf32_linux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shlelf32_linux.sh,v
retrieving revision 1.4
diff -u -p -r1.4 shlelf32_linux.sh
--- ld/emulparams/shlelf32_linux.sh 30 May 2006 16:45:32 -0000 1.4
+++ ld/emulparams/shlelf32_linux.sh 21 Oct 2008 23:34:28 -0000
@@ -3,6 +3,7 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sh64-linux"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/shlelf_linux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shlelf_linux.sh,v
retrieving revision 1.6
diff -u -p -r1.6 shlelf_linux.sh
--- ld/emulparams/shlelf_linux.sh 15 Jan 2008 23:05:46 -0000 1.6
+++ ld/emulparams/shlelf_linux.sh 21 Oct 2008 23:34:28 -0000
@@ -3,6 +3,7 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-sh-linux"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
Index: ld/emulparams/shlelf_nto.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/shlelf_nto.sh,v
retrieving revision 1.2
diff -u -p -r1.2 shlelf_nto.sh
--- ld/emulparams/shlelf_nto.sh 30 May 2006 16:45:32 -0000 1.2
+++ ld/emulparams/shlelf_nto.sh 21 Oct 2008 23:34:28 -0000
@@ -1,5 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-shl"
+NO_REL_RELOCS=yes
TEXT_START_ADDR=0x08040000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=sh
--
Alan Modra
Australia Development Lab, IBM