summaryrefslogtreecommitdiffstats
path: root/ld/emulparams
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2009-07-29 00:25:22 +0000
committerHans-Peter Nilsson <hp@axis.com>2009-07-29 00:25:22 +0000
commit18c32df5b44a1b3e6a5e9600c9a4c4bd731d24f2 (patch)
treeb5e0b344047f0182d994a4f5de38d0af3cc26a39 /ld/emulparams
parent45de461e3b099c6d9df280103e338c0eb027831c (diff)
downloadppe42-binutils-18c32df5b44a1b3e6a5e9600c9a4c4bd731d24f2.tar.gz
ppe42-binutils-18c32df5b44a1b3e6a5e9600c9a4c4bd731d24f2.zip
* scripttempl/mmo.sc: For relocateable links, set $OUTPUT_FORMAT to
the new $RELOCATEABLE_OUTPUT_FORMAT, if set. (OUTPUT_FORMAT): Use the variable $OUTPUT_FORMAT. (ENTRY): Don't emit for relocateable links. (/DISCARD/): Don't discard .gnu.warning.* for relocateable links. * emulparams/mmo.sh (RELOCATEABLE_OUTPUT_FORMAT): Set, to elf64-mmix. * emulparams/elf64mmix.sh (OTHER_TEXT_SECTIONS): Empty, don't provide "Main" or set "_start.", for relocateable links.
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf64mmix.sh7
-rw-r--r--ld/emulparams/mmo.sh1
2 files changed, 6 insertions, 2 deletions
diff --git a/ld/emulparams/elf64mmix.sh b/ld/emulparams/elf64mmix.sh
index 787b50d654..bdb5d0abcd 100644
--- a/ld/emulparams/elf64mmix.sh
+++ b/ld/emulparams/elf64mmix.sh
@@ -35,11 +35,14 @@ EXTRA_EM_FILE=mmixelf
# DEFINED wouldn't find the symbol if it was at the top; presumably
# before the definition, if the definition is not in the first file.
# FIXME: Arguably a linker bug.
-OTHER_TEXT_SECTIONS='
+# Only do this for a final link, or else we'll mess up e.g. error
+# messages.
+OTHER_TEXT_SECTIONS="
+${RELOCATING+
_start. = (DEFINED (_start) ? _start
: (DEFINED (Main) ? Main : (DEFINED (.text) ? .text : 0)));
PROVIDE (Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : _start.));
-'
+}"
OTHER_SECTIONS='
.MMIX.reg_contents :
diff --git a/ld/emulparams/mmo.sh b/ld/emulparams/mmo.sh
index e0a8798114..ca98013caf 100644
--- a/ld/emulparams/mmo.sh
+++ b/ld/emulparams/mmo.sh
@@ -5,6 +5,7 @@ TARGET_PAGE_SIZE=256
TEXT_START_ADDR='DEFINED (__.MMIX.start..text) ? __.MMIX.start..text : 0'
DATA_ADDR='DEFINED (__.MMIX.start..data) ? __.MMIX.start..data : 0x2000000000000000'
OUTPUT_FORMAT=mmo
+RELOCATEABLE_OUTPUT_FORMAT=elf64-mmix
ARCH=mmix
COMPILE_IN=yes
EXTRA_EM_FILE=mmo
OpenPOWER on IntegriCloud