* mpw-config.in: Recognize mips-*-* as equivalent to

mips-idt-ecoff.
	* mpw-eppcmac.c: Shortened from mpw-eppcmacos.c.
	* mpw-ld.r: Add version resources.
	(cfrg): Use symbolic instead of literal name for executable.
This commit is contained in:
Stan Shebs 1995-12-12 22:35:48 +00:00
parent 1d77631329
commit d8d4a450ff
4 changed files with 59 additions and 4 deletions

View File

@ -1,3 +1,11 @@
Tue Dec 12 13:55:41 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-config.in: Recognize mips-*-* as equivalent to
mips-idt-ecoff.
* mpw-eppcmacos.c: Rename to shorter mpw-eppcmac.c.
* mpw-ld.r: Add version resources.
(cfrg): Use symbolic instead of literal name for executable.
Mon Dec 11 15:13:41 1995 Kim Knuttila <krk@cygnus.com> Mon Dec 11 15:13:41 1995 Kim Knuttila <krk@cygnus.com>
* scripttempl/ppcpe.sc (FINI): Moved the .reloc section. * scripttempl/ppcpe.sc (FINI): Moved the .reloc section.

View File

@ -1,3 +1,29 @@
/* Resources for GNU LD. */
#include "SysTypes.r"
/* Version resources. */
resource 'vers' (1) {
0,
0,
0,
0,
verUs,
VERSION_STRING,
VERSION_STRING " (C) 1986-95 FSF, Inc."
};
resource 'vers' (2, purgeable) {
0,
0,
0,
0,
verUs,
VERSION_STRING,
"GLD " VERSION_STRING " for MPW"
};
#ifdef WANT_CFRG #ifdef WANT_CFRG
#include "CodeFragmentTypes.r" #include "CodeFragmentTypes.r"
@ -9,7 +35,7 @@ resource 'cfrg' (0) {
kNoVersionNum, kNoVersionNum, kNoVersionNum, kNoVersionNum,
0, 0, 0, 0,
kIsApp, kOnDiskFlat, kZeroOffset, kWholeFork, kIsApp, kOnDiskFlat, kZeroOffset, kWholeFork,
"ld" PROG_NAME
} }
}; };

View File

@ -4,18 +4,22 @@ If "{target_canonical}" =~ /m68k-apple-macos/
Set emulname m68kcoff Set emulname m68kcoff
forward-include "{srcdir}"mpw-em68kcoff.c em68kcoff.c forward-include "{srcdir}"mpw-em68kcoff.c em68kcoff.c
Set emulation_ofiles "{o}"em68kcoff.c.o Set emulation_ofiles "{o}"em68kcoff.c.o
Else If "{target_canonical}" =~ /powerpc-apple-macos/ Else If "{target_canonical}" =~ /powerpc-apple-macos/
Set emulname ppcmacos Set emulname ppcmacos
forward-include "{srcdir}"mpw-eppcmacos.c eppcmacos.c forward-include "{srcdir}"mpw-eppcmac.c eppcmacos.c
Set emulation_ofiles "{o}"eppcmacos.c.o Set emulation_ofiles "{o}"eppcmacos.c.o
Else If "{target_canonical}" =~ /i386-unknown-go32/ Else If "{target_canonical}" =~ /i386-unknown-go32/
Set emulname i386go32 Set emulname i386go32
forward-include "{srcdir}"mpw-ei386go32.c ei386go32.c forward-include "{srcdir}"mpw-ei386go32.c ei386go32.c
Set emulation_ofiles "{o}"ei386go32.c.o Set emulation_ofiles "{o}"ei386go32.c.o
Else If "{target_canonical}" =~ /mips-idt-ecoff/
Else If "{target_canonical}" =~ /mips-\Option-x-\Option-x/
Set emulname mipsidt Set emulname mipsidt
forward-include "{srcdir}"mpw-emipsidt.c emipsidt.c forward-include "{srcdir}"mpw-emipsidt.c emipsidt.c
Set emulation_ofiles "{o}"emipsidt.c.o Set emulation_ofiles "{o}"emipsidt.c.o
Else If "{target_canonical}" =~ /sh-hitachi-hms/ Else If "{target_canonical}" =~ /sh-hitachi-hms/
Set emulname sh Set emulname sh
forward-include "{srcdir}"mpw-esh.c esh.c forward-include "{srcdir}"mpw-esh.c esh.c

View File

@ -72,6 +72,9 @@ static unsigned short modtype = ('1' << 8) | 'L';
permitted). */ permitted). */
static int textro; static int textro;
/* Whether to implement Unix like linker semantics. */
static int unix_ld;
/* Structure used to hold import file list. */ /* Structure used to hold import file list. */
struct filelist struct filelist
@ -134,6 +137,7 @@ gldppcmacos_parse_args (argc, argv)
#define OPTION_PD (OPTION_NOSTRCMPCT + 1) #define OPTION_PD (OPTION_NOSTRCMPCT + 1)
#define OPTION_PT (OPTION_PD + 1) #define OPTION_PT (OPTION_PD + 1)
#define OPTION_STRCMPCT (OPTION_PT + 1) #define OPTION_STRCMPCT (OPTION_PT + 1)
#define OPTION_UNIX (OPTION_STRCMPCT + 1)
static struct option longopts[] = { static struct option longopts[] = {
{"basis", no_argument, NULL, OPTION_IGNORE}, {"basis", no_argument, NULL, OPTION_IGNORE},
@ -174,6 +178,7 @@ gldppcmacos_parse_args (argc, argv)
{"bstrcmpct", no_argument, NULL, OPTION_STRCMPCT}, {"bstrcmpct", no_argument, NULL, OPTION_STRCMPCT},
{"btextro", no_argument, &textro, 1}, {"btextro", no_argument, &textro, 1},
{"static", no_argument, NULL, OPTION_NOAUTOIMP}, {"static", no_argument, NULL, OPTION_NOAUTOIMP},
{"unix", no_argument, NULL, OPTION_UNIX},
{NULL, no_argument, NULL, 0} {NULL, no_argument, NULL, 0}
}; };
@ -381,6 +386,10 @@ gldppcmacos_parse_args (argc, argv)
case OPTION_STRCMPCT: case OPTION_STRCMPCT:
config.traditional_format = false; config.traditional_format = false;
break; break;
case OPTION_UNIX:
unix_ld = true;
break;
} }
return 1; return 1;
@ -437,6 +446,7 @@ gldppcmacos_before_allocation ()
struct filelist *fl; struct filelist *fl;
struct export_symbol_list *el; struct export_symbol_list *el;
char *libpath; char *libpath;
boolean export_defineds;
asection *special_sections[6]; asection *special_sections[6];
int i; int i;
@ -487,13 +497,20 @@ gldppcmacos_before_allocation ()
} }
} }
/* If we are emulating the Unix linker, we want to export all
defined symbols, unless an explicit -bE option was used. */
export_defineds = false;
if (unix_ld && export_symbols == NULL)
export_defineds = true;
/* Let the XCOFF backend set up the .loader section. */ /* Let the XCOFF backend set up the .loader section. */
if (! bfd_xcoff_size_dynamic_sections (output_bfd, &link_info, libpath, if (! bfd_xcoff_size_dynamic_sections (output_bfd, &link_info, libpath,
entry_symbol, file_align, entry_symbol, file_align,
maxstack, maxdata, maxstack, maxdata,
gc ? true : false, gc && ! unix_ld ? true : false,
modtype, modtype,
textro ? true : false, textro ? true : false,
export_defineds,
special_sections)) special_sections))
einfo ("%P%F: failed to set dynamic section sizes: %E\n"); einfo ("%P%F: failed to set dynamic section sizes: %E\n");