diff options
Diffstat (limited to 'ld/emultempl/mmo.em')
-rw-r--r-- | ld/emultempl/mmo.em | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em index 0a7d648bf1b8..11475751da28 100644 --- a/ld/emultempl/mmo.em +++ b/ld/emultempl/mmo.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -18,16 +18,24 @@ # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. # -# This file is sourced from elf32.em and mmo.em, used to define -# linker MMIX-specifics common to ELF and MMO. +# This file is sourced from generic.em. cat >>e${EMULATION_NAME}.c <<EOF -/* Need to have this define before mmix-elfnmmo, which includes - needrelax.em which uses this name for the before_allocation function, - normally defined in elf32.em. */ +/* Need to have this macro defined before mmix-elfnmmo, which uses the + name for the before_allocation function, defined in ldemul.c (for + the mmo "emulation") or in elf32.em (for the elf64mmix + "emulation"). */ #define gldmmo_before_allocation before_allocation_default + +/* We include this header *not* because we expect to handle ELF here + but because we re-use the map_segments function in elf-generic.em, + a file which is rightly somewhat ELF-centric. But this is only to + get a weird testcase right; ld-mmix/bpo-22, forcing ELF to be + output from the mmo emulation: -m mmo --oformat elf64-mmix! */ +#include "elf-bfd.h" EOF +. ${srcdir}/emultempl/elf-generic.em . ${srcdir}/emultempl/mmix-elfnmmo.em cat >>e${EMULATION_NAME}.c <<EOF @@ -112,6 +120,7 @@ static void mmo_finish (void) { bfd_map_over_sections (output_bfd, mmo_wipe_sec_reloc_flag, NULL); + gld${EMULATION_NAME}_map_segments (FALSE); finish_default (); } |