aboutsummaryrefslogtreecommitdiff
path: root/ld/mpw-em.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1994-01-26 04:18:25 +0000
committerStan Shebs <shebs@codesourcery.com>1994-01-26 04:18:25 +0000
commit9218920aba121ddabbbf3af7673900a5ae407282 (patch)
treef4001a3642cadbf8cd21d628a2027a8fa9908cf7 /ld/mpw-em.c
parentb5b2c886499ed688cf7a87faad7088ade34958ef (diff)
downloadfsf-binutils-gdb-9218920aba121ddabbbf3af7673900a5ae407282.zip
fsf-binutils-gdb-9218920aba121ddabbbf3af7673900a5ae407282.tar.gz
fsf-binutils-gdb-9218920aba121ddabbbf3af7673900a5ae407282.tar.bz2
Tue Jan 25 20:01:55 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-xconfig.in: New file, mpw x mips configuration fragment. * mpw-em.c: New file, compressed version of em_mipsidt.c.
Diffstat (limited to 'ld/mpw-em.c')
-rw-r--r--ld/mpw-em.c283
1 files changed, 283 insertions, 0 deletions
diff --git a/ld/mpw-em.c b/ld/mpw-em.c
new file mode 100644
index 0000000..ff71544
--- /dev/null
+++ b/ld/mpw-em.c
@@ -0,0 +1,283 @@
+/* This file is is generated by a shell script. DO NOT EDIT! */
+
+/* emulate the original gld for the given mipsidt
+ Copyright (C) 1991, 1993 Free Software Foundation, Inc.
+ Written by Steve Chamberlain steve@cygnus.com
+
+This file is part of GLD, the Gnu Linker.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#define TARGET_IS_mipsidt
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "bfdlink.h"
+
+#include "ld.h"
+#include "config.h"
+#include "ldmain.h"
+#include "ldemul.h"
+#include "ldfile.h"
+#include "ldmisc.h"
+
+static void gldmipsidt_before_parse PARAMS ((void));
+static char *gldmipsidt_get_script PARAMS ((int *isfile));
+
+static void
+gldmipsidt_before_parse()
+{
+#ifndef TARGET_ /* I.e., if not generic. */
+ ldfile_output_architecture = bfd_arch_mips;
+#endif /* not TARGET_ */
+}
+
+static char *
+gldmipsidt_get_script(isfile)
+ int *isfile;
+{
+ *isfile = 0;
+
+ if (link_info.relocateable == true && config.build_constructors == true)
+ return "{OUTPUT_FORMAT(\"ecoff-bigmips\")\n\
+ENTRY(start)\n\
+SECTIONS\n\
+{\n\
+ .text : {\n\
+ ;\n\
+ *(.init)\n\
+ ;\n\
+ *(.text)\n\
+ *(.fini)\n\
+ ;\n\
+ ;\n\
+ }\n\
+ .rdata : {\n\
+ *(.rdata)\n\
+ }\n\
+ .data : {\n\
+ *(.data)\n\
+ CONSTRUCTORS\n\
+ }\n\
+ .lit8 : {\n\
+ *(.lit8)\n\
+ }\n\
+ .lit4 : {\n\
+ *(.lit4)\n\
+ }\n\
+ .sdata : {\n\
+ *(.sdata)\n\
+ }\n\
+ .sbss : {\n\
+ *(.sbss)\n\
+ *(.scommon)\n\
+ }\n\
+ .bss : {\n\
+ *(.bss)\n\
+ *(COMMON)\n\
+ }\n\
+}\n\n}";
+ else if (link_info.relocateable == true)
+ return "{OUTPUT_FORMAT(\"ecoff-bigmips\")\n\
+ENTRY(start)\n\
+SECTIONS\n\
+{\n\
+ .text : {\n\
+ ;\n\
+ *(.init)\n\
+ ;\n\
+ *(.text)\n\
+ *(.fini)\n\
+ ;\n\
+ ;\n\
+ }\n\
+ .rdata : {\n\
+ *(.rdata)\n\
+ }\n\
+ .data : {\n\
+ *(.data)\n\
+ }\n\
+ .lit8 : {\n\
+ *(.lit8)\n\
+ }\n\
+ .lit4 : {\n\
+ *(.lit4)\n\
+ }\n\
+ .sdata : {\n\
+ *(.sdata)\n\
+ }\n\
+ .sbss : {\n\
+ *(.sbss)\n\
+ *(.scommon)\n\
+ }\n\
+ .bss : {\n\
+ *(.bss)\n\
+ *(COMMON)\n\
+ }\n\
+}\n\n}";
+ else if (!config.text_read_only)
+ return "{OUTPUT_FORMAT(\"ecoff-bigmips\")\n\
+ENTRY(start)\n\
+SECTIONS\n\
+{\n\
+ .text 0xa0012000 : {\n\
+ _ftext = . ;\n\
+ *(.init)\n\
+ eprol = .;\n\
+ *(.text)\n\
+ *(.fini)\n\
+ etext = .;\n\
+ _etext = .;\n\
+ }\n\
+ .rdata . : {\n\
+ *(.rdata)\n\
+ }\n\
+ _fdata = .;\n\
+ .data . : {\n\
+ *(.data)\n\
+ CONSTRUCTORS\n\
+ }\n\
+ _gp = . + 0x8000;\n\
+ .lit8 . : {\n\
+ *(.lit8)\n\
+ }\n\
+ .lit4 . : {\n\
+ *(.lit4)\n\
+ }\n\
+ .sdata . : {\n\
+ *(.sdata)\n\
+ }\n\
+ edata = .;\n\
+ _edata = .;\n\
+ _fbss = .;\n\
+ .sbss . : {\n\
+ *(.sbss)\n\
+ *(.scommon)\n\
+ }\n\
+ .bss . : {\n\
+ *(.bss)\n\
+ *(COMMON)\n\
+ }\n\
+ end = .;\n\
+ _end = .;\n\
+}\n\n}";
+ else if (!config.magic_demand_paged)
+ return "{OUTPUT_FORMAT(\"ecoff-bigmips\")\n\
+ENTRY(start)\n\
+SECTIONS\n\
+{\n\
+ .text 0xa0012000 : {\n\
+ _ftext = . ;\n\
+ *(.init)\n\
+ eprol = .;\n\
+ *(.text)\n\
+ *(.fini)\n\
+ etext = .;\n\
+ _etext = .;\n\
+ }\n\
+ .rdata . : {\n\
+ *(.rdata)\n\
+ }\n\
+ _fdata = .;\n\
+ .data . : {\n\
+ *(.data)\n\
+ CONSTRUCTORS\n\
+ }\n\
+ _gp = . + 0x8000;\n\
+ .lit8 . : {\n\
+ *(.lit8)\n\
+ }\n\
+ .lit4 . : {\n\
+ *(.lit4)\n\
+ }\n\
+ .sdata . : {\n\
+ *(.sdata)\n\
+ }\n\
+ edata = .;\n\
+ _edata = .;\n\
+ _fbss = .;\n\
+ .sbss . : {\n\
+ *(.sbss)\n\
+ *(.scommon)\n\
+ }\n\
+ .bss . : {\n\
+ *(.bss)\n\
+ *(COMMON)\n\
+ }\n\
+ end = .;\n\
+ _end = .;\n\
+}\n\n}";
+ else
+ return "{OUTPUT_FORMAT(\"ecoff-bigmips\")\n\
+ENTRY(start)\n\
+SECTIONS\n\
+{\n\
+ .text 0xa0012000 : {\n\
+ _ftext = . ;\n\
+ *(.init)\n\
+ eprol = .;\n\
+ *(.text)\n\
+ *(.fini)\n\
+ etext = .;\n\
+ _etext = .;\n\
+ }\n\
+ .rdata . : {\n\
+ *(.rdata)\n\
+ }\n\
+ _fdata = .;\n\
+ .data . : {\n\
+ *(.data)\n\
+ CONSTRUCTORS\n\
+ }\n\
+ _gp = . + 0x8000;\n\
+ .lit8 . : {\n\
+ *(.lit8)\n\
+ }\n\
+ .lit4 . : {\n\
+ *(.lit4)\n\
+ }\n\
+ .sdata . : {\n\
+ *(.sdata)\n\
+ }\n\
+ edata = .;\n\
+ _edata = .;\n\
+ _fbss = .;\n\
+ .sbss . : {\n\
+ *(.sbss)\n\
+ *(.scommon)\n\
+ }\n\
+ .bss . : {\n\
+ *(.bss)\n\
+ *(COMMON)\n\
+ }\n\
+ end = .;\n\
+ _end = .;\n\
+}\n\n}";
+}
+
+struct ld_emulation_xfer_struct ld_mipsidt_emulation =
+{
+ gldmipsidt_before_parse,
+ syslib_default,
+ hll_default,
+ after_parse_default,
+ after_allocation_default,
+ set_output_arch_default,
+ ldemul_default_target,
+ before_allocation_default,
+ gldmipsidt_get_script,
+ "mipsidt",
+ "ecoff-bigmips"
+};