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]

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


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