* 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.
This commit is contained in:
Hans-Peter Nilsson 2009-07-29 00:25:22 +00:00
parent 45de461e3b
commit 18c32df5b4
4 changed files with 25 additions and 5 deletions

View File

@ -1,3 +1,15 @@
2009-07-29 Hans-Peter Nilsson <hp@bitrange.com>
* 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.
2009-07-27 Nick Clifton <nickc@redhat.com>
* (po/fi.po): Updated Finnish translation.

View File

@ -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 :

View File

@ -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

View File

@ -1,7 +1,11 @@
# MMO is not a relocateable format, and we don't want to require an
# explicit (e.g.) "-m elf64mmix" when -r is used.
test -z $RELOCATEABLE_OUTPUT_FORMAT && RELOCATEABLE_OUTPUT_FORMAT=$OUTPUT_FORMAT
test -z ${RELOCATING+0} && OUTPUT_FORMAT=$RELOCATEABLE_OUTPUT_FORMAT
cat <<EOF
OUTPUT_FORMAT("mmo")
OUTPUT_FORMAT("$OUTPUT_FORMAT")
OUTPUT_ARCH(mmix)
ENTRY(Main)
${RELOCATING+ENTRY(Main)}
SECTIONS
{
.text ${RELOCATING+ ${TEXT_START_ADDR}}:
@ -128,6 +132,6 @@ SECTIONS
/* Unfortunately, stabs are not mappable from ELF to MMO.
It can probably be fixed with some amount of work. */
/DISCARD/ :
{ *(.gnu.warning.*); }
{ ${RELOCATING+ *(.gnu.warning.*);} }
}
EOF