* mpw-config.in (i386-unknown-aout): Change to i386-unknown-go32.
(i386-unknown-coff): Remove. (sh-hitachi-hms): New target. (emulation_ofiles): Set correctly for each target. (version, TDEFINES): Add to makefile fragment. * mpw-make.in (BISON): Use byacc instead of bison. (em_*.c): Replace with e*.c everywhere. (ldgram.h): Separate action from ldgram.c generation. (LD_PROG): Depend on Version.r. (Version.r): generate from version info. * mpw-em.c: Remove. * mpw-emipsidt.c: New file, modified for MPW from emipsidt.c.
This commit is contained in:
parent
b76eed6c1d
commit
ab4ccfd5bc
5 changed files with 565 additions and 357 deletions
|
@ -1,3 +1,18 @@
|
|||
Fri Mar 17 15:42:33 1995 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* mpw-config.in (i386-unknown-aout): Change to i386-unknown-go32.
|
||||
(i386-unknown-coff): Remove.
|
||||
(sh-hitachi-hms): New target.
|
||||
(emulation_ofiles): Set correctly for each target.
|
||||
(version, TDEFINES): Add to makefile fragment.
|
||||
* mpw-make.in (BISON): Use byacc instead of bison.
|
||||
(em_*.c): Replace with e*.c everywhere.
|
||||
(ldgram.h): Separate action from ldgram.c generation.
|
||||
(LD_PROG): Depend on Version.r.
|
||||
(Version.r): generate from version info.
|
||||
* mpw-em.c: Remove.
|
||||
* mpw-emipsidt.c: New file, modified for MPW from emipsidt.c.
|
||||
|
||||
Wed Dec 14 13:29:52 1994 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* mpw-config.in (m68k-apple-macos, ppc-apple-macos,
|
||||
|
|
|
@ -2,26 +2,38 @@
|
|||
|
||||
If "{target_canonical}" =~ /m68k-apple-macos/
|
||||
Set emulname m68kcoff
|
||||
forward-include "{srcdir}"mpw-em68kcoff.c em68kcoff.c
|
||||
Set emulation_ofiles "{o}"em68kcoff.c.o
|
||||
Else If "{target_canonical}" =~ /ppc-apple-macos/
|
||||
Set emulname ppcelf
|
||||
Else If "{target_canonical}" =~ /i386-unknown-aout/
|
||||
Set emulname i386aout
|
||||
Else If "{target_canonical}" =~ /i386-unknown-coff/
|
||||
Set emulname i386coff
|
||||
Set emulname xcoff
|
||||
forward-include "{srcdir}"mpw-excoff.c excoff.c
|
||||
Set emulation_ofiles "{o}"excoff.c.o
|
||||
Else If "{target_canonical}" =~ /i386-unknown-go32/
|
||||
Set emulname i386go32
|
||||
forward-include "{srcdir}"mpw-ei386go32.c ei386go32.c
|
||||
Set emulation_ofiles "{o}"ei386go32.c.o
|
||||
Else If "{target_canonical}" =~ /mips-idt-ecoff/
|
||||
Set emulname mipsidt
|
||||
forward-include "{srcdir}"mpw-em.c em_mipsidt.c
|
||||
forward-include "{srcdir}"mpw-emipsidt.c emipsidt.c
|
||||
Set emulation_ofiles "{o}"emipsidt.c.o
|
||||
Else If "{target_canonical}" =~ /sh-hitachi-hms/
|
||||
Set emulname sh
|
||||
forward-include "{srcdir}"mpw-esh.c esh.c
|
||||
Set emulation_ofiles "{o}"esh.c.o
|
||||
End If
|
||||
|
||||
Echo '/* This file is automatically generated. DO NOT EDIT! */' >ldemul-tmp.h
|
||||
Echo "extern ld_emulation_xfer_type ld_{emulname}_emulation;" >>ldemul-tmp.h
|
||||
Echo '#define EMULATION_LIST \' >>ldemul-tmp.h
|
||||
Echo " &ld_{emulname}_emulation, \" >>ldemul-tmp.h
|
||||
Echo ' 0' >>ldemul-tmp.h
|
||||
MoveIfChange ldemul-tmp.h ldemul-list.h
|
||||
Echo '/* This file is automatically generated. DO NOT EDIT! */' > "{o}"ldemul-tmp.h
|
||||
Echo "extern ld_emulation_xfer_type ld_{emulname}_emulation;" >> "{o}"ldemul-tmp.h
|
||||
Echo '#define EMULATION_LIST \' >> "{o}"ldemul-tmp.h
|
||||
Echo " &ld_{emulname}_emulation, \" >> "{o}"ldemul-tmp.h
|
||||
Echo ' 0' >> "{o}"ldemul-tmp.h
|
||||
MoveIfChange "{o}"ldemul-tmp.h "{o}"ldemul-list.h
|
||||
|
||||
Echo '# From mpw-config.in' > "{o}"mk.tmp
|
||||
Echo '# From mpw-config.in' > "{o}"mk.tmp
|
||||
|
||||
Echo "EMUL = " {emulname} >> "{o}"mk.tmp
|
||||
Echo "EMUL = " {emulname} >> "{o}"mk.tmp
|
||||
Echo "EMULATION_OFILES = " {emulation_ofiles} >> "{o}"mk.tmp
|
||||
Echo 'version = ' `Search 'ld version ' {srcdir}ldver.c | sed -e 's/.*ld version \([^ ]*\).*/\1/'` >> "{o}"mk.tmp
|
||||
Echo "TDEFINES = " >> "{o}"mk.tmp
|
||||
|
||||
Echo '# End from mpw-config.in' >> "{o}"mk.tmp
|
||||
Echo '# End from mpw-config.in' >> "{o}"mk.tmp
|
||||
|
|
283
ld/mpw-em.c
283
ld/mpw-em.c
|
@ -1,283 +0,0 @@
|
|||
/* 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"
|
||||
};
|
431
ld/mpw-emipsidt.c
Normal file
431
ld/mpw-emipsidt.c
Normal file
|
@ -0,0 +1,431 @@
|
|||
/* This file is is generated by a shell script. DO NOT EDIT! */
|
||||
|
||||
/* Handle embedded relocs for MIPS.
|
||||
Copyright 1994 Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor <ian@cygnus.com> based on generic.em.
|
||||
|
||||
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 "libiberty.h"
|
||||
#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 void gldmipsidt_after_open PARAMS ((void));
|
||||
static void check_sections PARAMS ((bfd *, asection *, PTR));
|
||||
static void gldmipsidt_after_allocation 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_ */
|
||||
}
|
||||
|
||||
/* This function is run after all the input files have been opened.
|
||||
We create a .rel.sdata section for each input file with a non zero
|
||||
.sdata section. The BFD backend will fill in these sections with
|
||||
magic numbers which can be used to relocate the data section at run
|
||||
time. This will only do the right thing if all the input files
|
||||
have been compiled using -membedded-pic. */
|
||||
|
||||
static void
|
||||
gldmipsidt_after_open ()
|
||||
{
|
||||
bfd *abfd;
|
||||
|
||||
if (! command_line.embedded_relocs
|
||||
|| link_info.relocateable)
|
||||
return;
|
||||
|
||||
for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
|
||||
{
|
||||
asection *datasec;
|
||||
|
||||
datasec = bfd_get_section_by_name (abfd, ".sdata");
|
||||
|
||||
/* Note that we assume that the reloc_count field has already
|
||||
been set up. We could call bfd_get_reloc_upper_bound, but
|
||||
that returns the size of a memory buffer rather than a reloc
|
||||
count. We do not want to call bfd_canonicalize_reloc,
|
||||
because although it would always work it would force us to
|
||||
read in the relocs into BFD canonical form, which would waste
|
||||
a significant amount of time and memory. */
|
||||
if (datasec != NULL && datasec->reloc_count > 0)
|
||||
{
|
||||
asection *relsec;
|
||||
|
||||
relsec = bfd_make_section (abfd, ".rel.sdata");
|
||||
if (relsec == NULL
|
||||
|| ! bfd_set_section_flags (abfd, relsec,
|
||||
(SEC_ALLOC
|
||||
| SEC_LOAD
|
||||
| SEC_HAS_CONTENTS
|
||||
| SEC_IN_MEMORY))
|
||||
|| ! bfd_set_section_alignment (abfd, relsec, 2)
|
||||
|| ! bfd_set_section_size (abfd, relsec,
|
||||
datasec->reloc_count * 4))
|
||||
einfo ("%F%B: can not create .rel.sdata section: %E");
|
||||
}
|
||||
|
||||
/* Double check that all other data sections are empty, as is
|
||||
required for embedded PIC code. */
|
||||
bfd_map_over_sections (abfd, check_sections, (PTR) datasec);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check that of the data sections, only the .sdata section has
|
||||
relocs. This is called via bfd_map_over_sections. */
|
||||
|
||||
static void
|
||||
check_sections (abfd, sec, sdatasec)
|
||||
bfd *abfd;
|
||||
asection *sec;
|
||||
PTR sdatasec;
|
||||
{
|
||||
if ((bfd_get_section_flags (abfd, sec) & SEC_CODE) == 0
|
||||
&& sec != (asection *) sdatasec
|
||||
&& sec->reloc_count != 0)
|
||||
einfo ("%F%X: section %s has relocs; can not use --embedded-relocs",
|
||||
abfd, bfd_get_section_name (abfd, sec));
|
||||
}
|
||||
|
||||
/* This function is called after the section sizes and offsets have
|
||||
been set. If we are generating embedded relocs, it calls a special
|
||||
BFD backend routine to do the work. */
|
||||
|
||||
static void
|
||||
gldmipsidt_after_allocation ()
|
||||
{
|
||||
bfd *abfd;
|
||||
|
||||
if (! command_line.embedded_relocs
|
||||
|| link_info.relocateable)
|
||||
return;
|
||||
|
||||
for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
|
||||
{
|
||||
asection *datasec, *relsec;
|
||||
char *errmsg;
|
||||
|
||||
datasec = bfd_get_section_by_name (abfd, ".sdata");
|
||||
|
||||
if (datasec == NULL || datasec->reloc_count == 0)
|
||||
continue;
|
||||
|
||||
relsec = bfd_get_section_by_name (abfd, ".rel.sdata");
|
||||
ASSERT (relsec != NULL);
|
||||
|
||||
if (! bfd_mips_ecoff_create_embedded_relocs (abfd, &link_info,
|
||||
datasec, relsec,
|
||||
&errmsg))
|
||||
{
|
||||
if (errmsg == NULL)
|
||||
einfo ("%B%X: can not create runtime reloc information: %E",
|
||||
abfd);
|
||||
else
|
||||
einfo ("%X%B: can not create runtime reloc information: %s",
|
||||
abfd, errmsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static char *
|
||||
gldmipsidt_get_script(isfile)
|
||||
int *isfile;
|
||||
{
|
||||
*isfile = 0;
|
||||
|
||||
if (link_info.relocateable == true && config.build_constructors == true)
|
||||
return
|
||||
concat(
|
||||
"OUTPUT_FORMAT(\"ecoff-bigmips\", \"ecoff-bigmips\",\n\
|
||||
\"ecoff-littlemips\")\n\
|
||||
SEARCH_DIR(/usr/local/mips-idt-ecoff/lib);\n\
|
||||
ENTRY(start)\n\
|
||||
SECTIONS\n\
|
||||
{\n\
|
||||
.text : {\n\
|
||||
;\n\
|
||||
*(.init)\n\
|
||||
;\n\
|
||||
*(.text)\n\
|
||||
*(.rel.sdata)\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", NULL)
|
||||
; else if (link_info.relocateable == true) return
|
||||
"OUTPUT_FORMAT(\"ecoff-bigmips\", \"ecoff-bigmips\",\n\
|
||||
\"ecoff-littlemips\")\n\
|
||||
SEARCH_DIR(/usr/local/mips-idt-ecoff/lib);\n\
|
||||
ENTRY(start)\n\
|
||||
SECTIONS\n\
|
||||
{\n\
|
||||
.text : {\n\
|
||||
;\n\
|
||||
*(.init)\n\
|
||||
;\n\
|
||||
*(.text)\n\
|
||||
*(.rel.sdata)\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
|
||||
concat(
|
||||
"OUTPUT_FORMAT(\"ecoff-bigmips\", \"ecoff-bigmips\",\n\
|
||||
\"ecoff-littlemips\")\n\
|
||||
SEARCH_DIR(/usr/local/mips-idt-ecoff/lib);\n\
|
||||
ENTRY(start)\n\
|
||||
SECTIONS\n\
|
||||
{\n\
|
||||
. = 0xa0012000;\n\
|
||||
.text : {\n\
|
||||
_ftext = . ;\n\
|
||||
*(.init)\n\
|
||||
eprol = .;\n\
|
||||
*(.text)\n\
|
||||
PROVIDE (__runtime_reloc_start = .);\n\
|
||||
*(.rel.sdata)\n\
|
||||
PROVIDE (__runtime_reloc_stop = .);\n\
|
||||
*(.fini)\n\
|
||||
etext = .;\n\
|
||||
_etext = .;\n\
|
||||
"," }\n\
|
||||
. = .;\n\
|
||||
.rdata : {\n\
|
||||
*(.rdata)\n\
|
||||
}\n\
|
||||
_fdata = ALIGN(16);\n\
|
||||
.data : {\n\
|
||||
*(.data)\n\
|
||||
CONSTRUCTORS\n\
|
||||
}\n\
|
||||
_gp = ALIGN(16) + 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"
|
||||
, NULL)
|
||||
; else if (!config.magic_demand_paged) return
|
||||
concat (
|
||||
"OUTPUT_FORMAT(\"ecoff-bigmips\", \"ecoff-bigmips\",\n\
|
||||
\"ecoff-littlemips\")\n\
|
||||
SEARCH_DIR(/usr/local/mips-idt-ecoff/lib);\n\
|
||||
ENTRY(start)\n\
|
||||
SECTIONS\n\
|
||||
{\n\
|
||||
. = 0xa0012000;\n\
|
||||
.text : {\n\
|
||||
_ftext = . ;\n\
|
||||
*(.init)\n\
|
||||
eprol = .;\n\
|
||||
*(.text)\n\
|
||||
PROVIDE (__runtime_reloc_start = .);\n\
|
||||
*(.rel.sdata)\n\
|
||||
PROVIDE (__runtime_reloc_stop = .);\n\
|
||||
*(.fini)\n\
|
||||
etext = .;\n\
|
||||
_etext = .;\n\
|
||||
"," }\n\
|
||||
. = .;\n\
|
||||
.rdata : {\n\
|
||||
*(.rdata)\n\
|
||||
}\n\
|
||||
_fdata = ALIGN(16);\n\
|
||||
.data : {\n\
|
||||
*(.data)\n\
|
||||
CONSTRUCTORS\n\
|
||||
}\n\
|
||||
_gp = ALIGN(16) + 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"
|
||||
, NULL)
|
||||
; else return
|
||||
concat (
|
||||
"OUTPUT_FORMAT(\"ecoff-bigmips\", \"ecoff-bigmips\",\n\
|
||||
\"ecoff-littlemips\")\n\
|
||||
SEARCH_DIR(/usr/local/mips-idt-ecoff/lib);\n\
|
||||
ENTRY(start)\n\
|
||||
SECTIONS\n\
|
||||
{\n\
|
||||
. = 0xa0012000;\n\
|
||||
.text : {\n\
|
||||
_ftext = . ;\n\
|
||||
*(.init)\n\
|
||||
eprol = .;\n\
|
||||
*(.text)\n\
|
||||
PROVIDE (__runtime_reloc_start = .);\n\
|
||||
*(.rel.sdata)\n\
|
||||
PROVIDE (__runtime_reloc_stop = .);\n\
|
||||
*(.fini)\n\
|
||||
etext = .;\n\
|
||||
_etext = .;\n\
|
||||
"," }\n\
|
||||
. = .;\n\
|
||||
.rdata : {\n\
|
||||
*(.rdata)\n\
|
||||
}\n\
|
||||
_fdata = ALIGN(16);\n\
|
||||
.data : {\n\
|
||||
*(.data)\n\
|
||||
CONSTRUCTORS\n\
|
||||
}\n\
|
||||
_gp = ALIGN(16) + 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"
|
||||
, NULL)
|
||||
; }
|
||||
|
||||
struct ld_emulation_xfer_struct ld_mipsidt_emulation =
|
||||
{
|
||||
gldmipsidt_before_parse,
|
||||
syslib_default,
|
||||
hll_default,
|
||||
after_parse_default,
|
||||
gldmipsidt_after_open,
|
||||
gldmipsidt_after_allocation,
|
||||
set_output_arch_default,
|
||||
ldemul_default_target,
|
||||
before_allocation_default,
|
||||
gldmipsidt_get_script,
|
||||
"mipsidt",
|
||||
"ecoff-bigmips"
|
||||
};
|
151
ld/mpw-make.in
151
ld/mpw-make.in
|
@ -76,7 +76,7 @@ MAKEINFO = makeinfo
|
|||
TEXI2DVI = texi2dvi
|
||||
RANLIB = ranlib
|
||||
CC_FOR_BUILD={CC}
|
||||
BISON = bison -y
|
||||
BISON = byacc
|
||||
LEX = flex
|
||||
|
||||
# Seach path to override the default search path for -lfoo libraries.
|
||||
|
@ -178,20 +178,17 @@ ALL_CFLAGS={INCLUDES} {HDEFINES} {TDEFINES} {CDEFINES} {CFLAGS}
|
|||
BFDLIB = ::bfd:libbfd.o
|
||||
LIBIBERTY = ::libiberty:libiberty.o
|
||||
|
||||
ALL_EMULATIONS = "{o}"em_lnk960.c.o "{o}"em_sun3.c.o "{o}"em_i386aout.c.o "{o}"em_go32.c.o "{o}"em_vsta.c.o \Option-d
|
||||
"{o}"em_m88kbcs.c.o "{o}"em_a29k.c.o "{o}"em_news.c.o "{o}"em_hp300bsd.c.o "{o}"em_hp3hpux.c.o \Option-d
|
||||
"{o}"em_h8300.c.o "{o}"em_h8300h.c.o "{o}"em_ebmon29k.c.o "{o}"em_sun4.c.o "{o}"em_gld960.c.o \Option-d
|
||||
"{o}"em_m68kcoff.c.o "{o}"em_st2000.c.o "{o}"em_sa29200.c.o "{o}"em_i386mach.c.o \Option-d
|
||||
"{o}"em_vanilla.c.o "{o}"em_i386coff.c.o "{o}"em_z8ksim.c.o "{o}"em_mipslit.c.o "{o}"em_i386bsd.c.o \Option-d
|
||||
"{o}"em_mipsbig.c.o "{o}"em_mipsbsd.c.o "{o}"em_mipsidt.c.o "{o}"em_vax.c.o "{o}"em_h8500.c.o \Option-d
|
||||
"{o}"em_hppaosf.c.o "{o}"em_mipsidtl.c.o "{o}"em_sh.c.o "{o}"em_elf_i386.c.o "{o}"em_alpha.c.o \Option-d
|
||||
"{o}"em_i386lynx.c.o "{o}"em_m68klynx.c.o "{o}"em_sparclynx.c.o "{o}"em_coff_sparc.c.o \Option-d
|
||||
"{o}"em_delta68.c.o \Option-d
|
||||
ALL_EMULATIONS = "{o}"elnk960.c.o "{o}"esun3.c.o "{o}"ei386aout.c.o "{o}"ego32.c.o "{o}"evsta.c.o \Option-d
|
||||
"{o}"em88kbcs.c.o "{o}"ea29k.c.o "{o}"enews.c.o "{o}"ehp300bsd.c.o "{o}"ehp3hpux.c.o \Option-d
|
||||
"{o}"eh8300.c.o "{o}"eh8300h.c.o "{o}"eebmon29k.c.o "{o}"esun4.c.o "{o}"egld960.c.o \Option-d
|
||||
"{o}"em68kcoff.c.o "{o}"est2000.c.o "{o}"esa29200.c.o "{o}"ei386mach.c.o \Option-d
|
||||
"{o}"evanilla.c.o "{o}"ei386coff.c.o "{o}"ez8ksim.c.o "{o}"emipslit.c.o "{o}"ei386bsd.c.o \Option-d
|
||||
"{o}"emipsbig.c.o "{o}"emipsbsd.c.o "{o}"emipsidt.c.o "{o}"evax.c.o "{o}"eh8500.c.o \Option-d
|
||||
"{o}"ehppaosf.c.o "{o}"emipsidtl.c.o "{o}"esh.c.o "{o}"eelf_i386.c.o "{o}"ealpha.c.o \Option-d
|
||||
"{o}"ei386lynx.c.o "{o}"em68klynx.c.o "{o}"esparclynx.c.o "{o}"ecoff_sparc.c.o \Option-d
|
||||
"{o}"edelta68.c.o \Option-d
|
||||
{OTHER_EMULATIONS}
|
||||
|
||||
# This is now set by configure.in.
|
||||
EMULATION_OFILES = "{o}"em_mipsidt.c.o
|
||||
|
||||
CFILES = "{s}"ldctor.c "{s}"ldemul.c "{s}"ldexp.c "{s}"ldfile.c "{s}"ldlang.c \Option-d
|
||||
ldmain.c "{s}"ldmisc.c "{s}"ldver.c "{s}"ldwrite.c "{s}"lexsup.c \Option-d
|
||||
mri.c
|
||||
|
@ -208,22 +205,25 @@ OFILES = "{o}"ldgram.c.o "{o}"ldlex.c.o "{o}"lexsup.c.o "{o}"ldlang.c.o "{o}"mri
|
|||
"{o}"ldwrite.c.o "{o}"ldexp.c.o "{o}"ldemul.c.o "{o}"ldver.c.o "{o}"ldmisc.c.o \Option-d
|
||||
"{o}"ldfile.c.o {EMULATION_OFILES}
|
||||
|
||||
LINTSOURCES = {CFILES} {GENERATED_CFILES} em_\Option-x.c
|
||||
LINTSOURCES = {CFILES} {GENERATED_CFILES} e\Option-x.c
|
||||
|
||||
STAGESTUFF = "{o}"\Option-x.c.o ldscripts:\Option-x em_\Option-x.c {GENERATED_CFILES} {GENERATED_HFILES}
|
||||
STAGESTUFF = "{o}"\Option-x.c.o ldscripts:\Option-x e\Option-x.c {GENERATED_CFILES} {GENERATED_HFILES}
|
||||
|
||||
info \Option-f ld.info
|
||||
# .PHONY \Option-f info
|
||||
|
||||
:ldgram.h :ldgram.c \Option-f "{s}"ldgram.y
|
||||
:ldgram.c \Option-f "{s}"ldgram.y
|
||||
{BISON} {BISONFLAGS} -d "{srcdir}"ldgram.y
|
||||
Rename -y y.tab.c :ldgram.c
|
||||
Rename -y y.tab.h :ldgram.h
|
||||
|
||||
# Separate from ldgram.c so that a parallel make doesn't try to build
|
||||
# both ldgram.c and ldgram.h simultaneously.
|
||||
:ldgram.h \Option-f :ldgram.c
|
||||
|
||||
# EMUL is the name of a file in the emulparams subdir, without the .sh.
|
||||
"{o}"ldmain.c.o \Option-f "{s}"ldmain.c config.status
|
||||
{CC} {INCLUDES} {HDEFINES} {TDEFINES} {CDEFINES} -d DEFAULT_EMULATION=\Option-d"{EMUL}\Option-d" -d SCRIPTDIR=\Option-d"{scriptdir}\Option-d" {CFLAGS} "{s}"ldmain.c -o "{o}"ldmain.c.o
|
||||
fi
|
||||
|
||||
# Use this when flex is working correctly.
|
||||
:ldlex.c \Option-f "{s}"ldlex.l
|
||||
|
@ -234,135 +234,168 @@ info \Option-f ld.info
|
|||
#:ldlex.c \Option-f "{s}"mpw-ldlex.c
|
||||
# Catenate "{s}"mpw-ldlex.c >:ldlex.c
|
||||
|
||||
# These all start with em_ so 'make clean' can find them.
|
||||
# These all start with e so 'make clean' can find them.
|
||||
|
||||
GENSCRIPTS = {SHELL} "{srcdir}"genscripts.sh {srcdir} {libdir} {host_alias} {target_alias} {EMUL} "{NATIVE_LIB_DIRS}"
|
||||
GEN_DEPENDS = "{srcdir}"genscripts.sh
|
||||
|
||||
em_sun4.c \Option-f "{srcdir}"emulparams:sun4.sh \Option-d
|
||||
esun4.c \Option-f "{srcdir}"emulparams:sun4.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} sun4
|
||||
em_sun3.c \Option-f "{srcdir}"emulparams:sun3.sh \Option-d
|
||||
esun3.c \Option-f "{srcdir}"emulparams:sun3.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} sun3
|
||||
em_vsta.c \Option-f "{srcdir}"emulparams:vsta.sh \Option-d
|
||||
evsta.c \Option-f "{srcdir}"emulparams:vsta.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} vsta
|
||||
em_go32.c \Option-f "{srcdir}"emulparams:go32.sh \Option-d
|
||||
ego32.c \Option-f "{srcdir}"emulparams:go32.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} go32
|
||||
em_news.c \Option-f "{srcdir}"emulparams:news.sh \Option-d
|
||||
enews.c \Option-f "{srcdir}"emulparams:news.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} news
|
||||
em_vax.c \Option-f "{srcdir}"emulparams:vax.sh \Option-d
|
||||
evax.c \Option-f "{srcdir}"emulparams:vax.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} vax
|
||||
em_hp300bsd.c \Option-f "{srcdir}"emulparams:hp300bsd.sh \Option-d
|
||||
ehp300bsd.c \Option-f "{srcdir}"emulparams:hp300bsd.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} hp300bsd
|
||||
em_hp3hpux.c \Option-f "{srcdir}"emulparams:hp3hpux.sh \Option-d
|
||||
ehp3hpux.c \Option-f "{srcdir}"emulparams:hp3hpux.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} hp3hpux
|
||||
em_hppaosf.c \Option-f "{srcdir}"emulparams:hppaosf.sh \Option-d
|
||||
ehppaosf.c \Option-f "{srcdir}"emulparams:hppaosf.sh \Option-d
|
||||
"{srcdir}"emultempl:hppaosf.em "{srcdir}"scripttempl:hppaosf.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} hppaosf
|
||||
em_i386aout.c \Option-f "{srcdir}"emulparams:i386aout.sh \Option-d
|
||||
ei386aout.c \Option-f "{srcdir}"emulparams:i386aout.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} i386aout
|
||||
em_i386mach.c \Option-f "{srcdir}"emulparams:i386mach.sh \Option-d
|
||||
ei386mach.c \Option-f "{srcdir}"emulparams:i386mach.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} i386mach
|
||||
em_ebmon29k.c \Option-f "{srcdir}"emulparams:ebmon29k.sh \Option-d
|
||||
eebmon29k.c \Option-f "{srcdir}"emulparams:ebmon29k.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:ebmon29k.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} ebmon29k
|
||||
em_sa29200.c \Option-f "{srcdir}"emulparams:sa29200.sh \Option-d
|
||||
esa29200.c \Option-f "{srcdir}"emulparams:sa29200.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sa29200.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} sa29200
|
||||
em_a29k.c \Option-f "{srcdir}"emulparams:a29k.sh \Option-d
|
||||
ea29k.c \Option-f "{srcdir}"emulparams:a29k.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:a29k.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} a29k
|
||||
em_m88kbcs.c \Option-f "{srcdir}"emulparams:m88kbcs.sh \Option-d
|
||||
em88kbcs.c \Option-f "{srcdir}"emulparams:m88kbcs.sh \Option-d
|
||||
"{srcdir}"emultempl:m88kbcs.em "{srcdir}"scripttempl:m88kbcs.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} m88kbcs
|
||||
em_h8300.c \Option-f "{srcdir}"emulparams:h8300.sh \Option-d
|
||||
eh8300.c \Option-f "{srcdir}"emulparams:h8300.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8300.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} h8300
|
||||
em_h8300h.c \Option-f "{srcdir}"emulparams:h8300h.sh \Option-d
|
||||
eh8300h.c \Option-f "{srcdir}"emulparams:h8300h.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8300h.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} h8300h
|
||||
em_h8500.c \Option-f "{srcdir}"emulparams:h8500.sh \Option-d
|
||||
eh8500.c \Option-f "{srcdir}"emulparams:h8500.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:h8500.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} h8500
|
||||
em_sh.c \Option-f "{srcdir}"emulparams:sh.sh \Option-d
|
||||
esh.c \Option-f "{srcdir}"emulparams:sh.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sh.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} sh
|
||||
em_st2000.c \Option-f "{srcdir}"emulparams:st2000.sh \Option-d
|
||||
est2000.c \Option-f "{srcdir}"emulparams:st2000.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:st2000.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} st2000
|
||||
em_z8ksim.c \Option-f "{srcdir}"emulparams:z8ksim.sh \Option-d
|
||||
ez8ksim.c \Option-f "{srcdir}"emulparams:z8ksim.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:z8ksim.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} z8ksim
|
||||
em_vanilla.c \Option-f "{srcdir}"emulparams:vanilla.sh \Option-d
|
||||
evanilla.c \Option-f "{srcdir}"emulparams:vanilla.sh \Option-d
|
||||
"{srcdir}"emultempl:vanilla.em "{srcdir}"scripttempl:vanilla.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} vanilla
|
||||
em_lnk960.c \Option-f "{srcdir}"emulparams:lnk960.sh \Option-d
|
||||
elnk960.c \Option-f "{srcdir}"emulparams:lnk960.sh \Option-d
|
||||
"{srcdir}"emultempl:lnk960.em "{srcdir}"scripttempl:i960.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} lnk960
|
||||
em_gld960.c \Option-f "{srcdir}"emulparams:gld960.sh \Option-d
|
||||
egld960.c \Option-f "{srcdir}"emulparams:gld960.sh \Option-d
|
||||
"{srcdir}"emultempl:gld960.em "{srcdir}"scripttempl:i960.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} gld960
|
||||
em_m68kcoff.c \Option-f "{srcdir}"emulparams:m68kcoff.sh \Option-d
|
||||
em68kcoff.c \Option-f "{srcdir}"emulparams:m68kcoff.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:m68kcoff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} m68kcoff
|
||||
em_delta68.c \Option-f "{srcdir}"emulparams:delta68.sh \Option-d
|
||||
edelta68.c \Option-f "{srcdir}"emulparams:delta68.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:delta68.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} delta68
|
||||
em_m68klynx.c \Option-f "{srcdir}"emulparams:m68klynx.sh \Option-d
|
||||
em68klynx.c \Option-f "{srcdir}"emulparams:m68klynx.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:m68kcoff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} m68klynx
|
||||
em_i386coff.c \Option-f "{srcdir}"emulparams:i386coff.sh \Option-d
|
||||
ei386coff.c \Option-f "{srcdir}"emulparams:i386coff.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:i386coff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} i386coff
|
||||
em_i386lynx.c \Option-f "{srcdir}"emulparams:i386lynx.sh \Option-d
|
||||
ei386lynx.c \Option-f "{srcdir}"emulparams:i386lynx.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:i386coff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} i386lynx
|
||||
em_sparclynx.c \Option-f "{srcdir}"emulparams:sparclynx.sh \Option-d
|
||||
esparclynx.c \Option-f "{srcdir}"emulparams:sparclynx.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sparccoff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} sparclynx
|
||||
em_mipslit.c \Option-f "{srcdir}"emulparams:mipslit.sh \Option-d
|
||||
emipslit.c \Option-f "{srcdir}"emulparams:mipslit.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} mipslit
|
||||
em_i386bsd.c \Option-f "{srcdir}"emulparams:i386bsd.sh \Option-d
|
||||
ei386bsd.c \Option-f "{srcdir}"emulparams:i386bsd.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} i386bsd
|
||||
em_mipsbig.c \Option-f "{srcdir}"emulparams:mipsbig.sh \Option-d
|
||||
emipsbig.c \Option-f "{srcdir}"emulparams:mipsbig.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} mipsbig
|
||||
em_mipsbsd.c \Option-f "{srcdir}"emulparams:mipsbsd.sh \Option-d
|
||||
emipsbsd.c \Option-f "{srcdir}"emulparams:mipsbsd.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:aout.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} mipsbsd
|
||||
em_mipsidt.c \Option-f "{srcdir}"emulparams:mipsidt.sh \Option-d
|
||||
emipsidt.c \Option-f "{srcdir}"emulparams:mipsidt.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} mipsidt
|
||||
em_mipsidtl.c \Option-f "{srcdir}"emulparams:mipsidtl.sh \Option-d
|
||||
emipsidtl.c \Option-f "{srcdir}"emulparams:mipsidtl.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:mips.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} mipsidtl
|
||||
em_elf_i386.c \Option-f "{srcdir}"emulparams:elf_i386.sh \Option-d
|
||||
eelf_i386.c \Option-f "{srcdir}"emulparams:elf_i386.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:elf.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} elf_i386
|
||||
em_elf32mipb.c \Option-f "{srcdir}"emulparams:elf32mipb.sh \Option-d
|
||||
eelf32mipb.c \Option-f "{srcdir}"emulparams:elf32mipb.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:elf.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} elf32mipb
|
||||
em_alpha.c \Option-f "{srcdir}"emulparams:alpha.sh \Option-d
|
||||
ealpha.c \Option-f "{srcdir}"emulparams:alpha.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:alpha.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} alpha
|
||||
em_coff_sparc.c \Option-f "{srcdir}"emulparams:coff_sparc.sh \Option-d
|
||||
ecoff_sparc.c \Option-f "{srcdir}"emulparams:coff_sparc.sh \Option-d
|
||||
"{srcdir}"emultempl:generic.em "{srcdir}"scripttempl:sparccoff.sc {GEN_DEPENDS}
|
||||
{GENSCRIPTS} coff_sparc
|
||||
|
||||
{LD_PROG} \Option-f {OFILES} {BFDLIB} {LIBIBERTY}
|
||||
{LD_PROG} \Option-f {OFILES} {BFDLIB} {LIBIBERTY} "{o}"Version.r
|
||||
Rez -rd -o {LD_PROG} "{o}"Version.r -append
|
||||
Link {LDFLAGS} -o {LD_PROG} {OFILES} {BFDLIB} {LIBIBERTY} {EXTRALIBS}
|
||||
|
||||
"{o}"Version.r \Option-f "{o}"version-stamp
|
||||
|
||||
"{o}"version-stamp \Option-f Makefile
|
||||
Delete -i -y "{o}"version.new "{o}"version-stamp
|
||||
Set major `Search 'ld version ' {srcdir}ldver.c | sed -e 's/.*ld version [^0-9]*\([0-9]*\)\.\([0-9]*\)\..*/\1/'`
|
||||
Set minor `Search 'ld version ' {srcdir}ldver.c | sed -e 's/.*ld version [^0-9]*\([0-9]*\)\.\([0-9]*\)\..*/\2/'`
|
||||
Set release 0
|
||||
Echo '/* Version resources. */' > "{o}"version.new
|
||||
Echo '#include "SysTypes.r"' >> "{o}"version.new
|
||||
Echo '' >> "{o}"version.new
|
||||
Echo "resource 'vers' (1) " `open-brace` >> "{o}"version.new
|
||||
Echo " {major}," >> "{o}"version.new
|
||||
Echo " {minor}," >> "{o}"version.new
|
||||
Echo " {release}," >> "{o}"version.new
|
||||
Echo ' 0,' >> "{o}"version.new
|
||||
Echo ' verUs,' >> "{o}"version.new
|
||||
Echo ' "{version}",' >> "{o}"version.new
|
||||
Echo ' "{version} (c) 1986-95 FSF, Inc. "' >> "{o}"version.new
|
||||
Echo '};' >> "{o}"version.new
|
||||
Echo '' >> "{o}"version.new
|
||||
Echo "resource 'vers' (2, purgeable) " `open-brace` >> "{o}"version.new
|
||||
Echo " {major}," >> "{o}"version.new
|
||||
Echo " {minor}," >> "{o}"version.new
|
||||
Echo " {release}," >> "{o}"version.new
|
||||
Echo ' 0,' >> "{o}"version.new
|
||||
Echo ' verUs,' >> "{o}"version.new
|
||||
Echo ' "{version}",' >> "{o}"version.new
|
||||
Echo ' "GNU LD for MPW"' >> "{o}"version.new
|
||||
Echo '};' >> "{o}"version.new
|
||||
MoveIfChange "{o}"version.new "{o}"Version.r
|
||||
Echo ' ' > "{o}"version-stamp
|
||||
|
||||
# The generated emulation files mostly have the same dependencies.
|
||||
{EMULATION_OFILES} \Option-f ::bfd:bfd.h ::bfd:sysdep.h "{INCDIR}":bfdlink.h \Option-d
|
||||
"{s}"ld.h "{s}"ldmain.h "{s}"ldemul.h "{s}"ldfile.h "{s}"ldmisc.h "{s}"ldexp.h "{s}"ldlang.h "{s}"config.h "{s}"ldctor.h
|
||||
|
|
Loading…
Reference in a new issue