Sun Nov 3 16:37:37 1991 Steve Chamberlain (steve at cygnus.com)

i386 aout changes from Bob Kukura
	* Makefile.in, config.h: added i386aout support
	* configure.in: fixed /h-{myhost} typo
	* ldgram.y: -MM now gives more boring map.
	* ldlang.c: now does D_PAGED flag the right way.
	* ldsym.c: -MM flags does the right thing.
This commit is contained in:
Steve Chamberlain 1991-11-04 00:45:25 +00:00
parent e181b631aa
commit ce4d59e25d
3 changed files with 59 additions and 25 deletions

View File

@ -1,5 +1,22 @@
#
# Makefile for ld version 2
# Makefile for the GNU linker ld (version 2)
# Copyright (C) 1989-1991 Free Software Foundation, Inc.
# This file is part of GNU ld..
# 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.
#
# $Id$
#
@ -9,9 +26,8 @@ srcdir = .
destdir = /usr/local
version=`$(unsubdir)/../gcc$(subdir)/gcc -dumpversion`
bindir = $(destdir)/H-$(host_alias)/T-$(target_alias)/bin
libdir = $(destdir)/H-$(host_alias)/T-$(target_alias)/lib
libsubdir = $(libdir)/gcc/$(target)/$(version)
bindir = $(destdir)/bin
gcclibdir = $(destdir)/lib/gcc/$(target_alias)/$(version)
# Seach path to override the default search path for -lfoo libraries.
# If LIB_PATH is empty, the ones in the script (if any) are left alone.
@ -44,7 +60,7 @@ BISONFLAGS = -v
SCRIPTS = ldgld68k.sc ldgld.sc \
ldlnk960.sc ldlnk960r.sc ldgld960.sc \
ldm88k.sc ldglda29k.sc news.sc h8300hds.sc ebmon29k.sc
i386aout.sc ldm88k.sc ldglda29k.sc news.sc h8300hds.sc ebmon29k.sc
#### target and host dependent Makefile fragments come in here.
###
@ -122,17 +138,19 @@ SED_REMOVE_CONSTRUCTORS= -e /CONSTRUCTORS/d
BFDLIB=$(unsubdir)/../bfd$(subdir)/libbfd.a
LIBIBERTY=$(unsubdir)/../libiberty$(subdir)/libiberty.a
OFILES= ldgram.o ldlex.o ldlang.o ldmain.o ldwarn.o ldwrite.o ldexp.o ldlnk960.o ldgld68k.o ldindr.o \
OFILES= ldgram.o ldlex.o ldlang.o ldctor.o ldmain.o \
ldwarn.o ldwrite.o ldexp.o ldlnk960.o ldgld68k.o ldindr.o i386aout.o \
ldm88k.o ldglda29k.o news.o h8300hds.o ebmon29k.o \
ldgld.o ldgld960.o ldemul.o ldver.o ldmisc.o ldsym.o ldvanilla.o ldfile.o
HEADERS=config.h ldmain.h ldmain.h ldwarn.h ldmisc.h ldindr.h ldsym.h ldlang.h ldexp.h \
HEADERS=config.h ldmain.h ldmain.h ldwarn.h ldmisc.h ldindr.h \
ldsym.h ldctor.h ldlang.h ldexp.h \
ldlex.h ldwrite.h ldver.h ldemul.h ldfile.h ldgram.h ld.h
MANSOURCES=ld.tex
LDCSOURCES=ldlang.c ldindr.c ldmain.c ldwrite.c ldwarn.c ldlnk960.c ldgld.c ldgld68k.c \
ldm88k.c ldgld29k.c \
LDCSOURCES=ldlang.c ldctor.c ldindr.c ldmain.c ldwrite.c ldwarn.c ldlnk960.c \
ldgld.c ldgld68k.c ldm88k.c ebmon29k.c \
ldgld960.c ldemul.c ldver.c ldmisc.c ldexp.c ldsym.c ldfile.c ldvanilla.c
GENERATED_SOURCES=ldgram.c ldlex.c ldgram.h
@ -166,6 +184,11 @@ news.c: $(srcdir)/ldtemplate
sed -e s/"<ldtarget>"/news/g -e s/"<arch>"/m68k/g \
-e s/"<target>"/news/g -e s/"<TARGET>"/NEWS/g <$(srcdir)/ldtemplate >$@
i386aout.c: $(srcdir)/ldtemplate
sed -e s/"<ldtarget>"/i386aout/g -e s/"<arch>"/i386/g \
-e s/"<target>"/i386aout/g -e s/"<TARGET>"/I386AOUT/g <$(srcdir)/ldtemplate >$@
ebmon29k.c: $(srcdir)/ldtemplate
sed -e s/"<ldtarget>"/ebmon29k/g -e s/"<arch>"/a29k/g \
-e s/"gld<target>"/ebmon29k/g -e s/"GLD<TARGET>"/EBMON29K/g \
@ -184,6 +207,7 @@ ldm88k.c: $(srcdir)/ldtemplate
# The .c files for these are generated from ldtemplete.
ldgld.o: ./mkscript ldgld.x ldgld.xr ldgld.xu ldgld.xn ldgld.xN
news.o: ./mkscript news.x news.xr news.xu news.xn news.xN
i386aout.o: ./mkscript i386aout.x i386aout.xr i386aout.xu i386aout.xn i386aout.xN
ebmon29k.o: ./mkscript ebmon29k.x ebmon29k.xr ebmon29k.xu \
ebmon29k.xn ebmon29k.xN
ldgld68k.o: ./mkscript ldgld68k.x ldgld68k.xr ldgld68k.xu \
@ -299,6 +323,7 @@ ldm88kUr.x :ldm88kUr.sc
ldm88kr.x:ldm88kr.sc
ldm88k.x:ldm88k.sc
news.x:news.sc
i386aout.x:i386aout.sc
h8300hds.x:h8300hds.sc
h8300hds.o:h8300hds.c
ldgld68k.x:ldgld68k.sc
@ -372,9 +397,18 @@ release:
objdump:objdump.c
install: $(LD_PROG)
# $(INSTALL_PROGRAM) ld.new $(libsubdir)/ld
cp $(LD_PROG) $(bindir)/ld.new
mv -f $(bindir)/ld.new $(bindir)/ld
$(INSTALL_PROGRAM) ld.new $(bindir)/ld
# Something like the following might make sense for install, but doesn't work
# - it is too fragile, depending on a gcc binary int the right place.
# Perhaps using gcc/version.c might work?
# # If $(gcclibdir) exists, install ld there, and put a link to it
# # from $(bindir); otherwise put ld in $(bindir).
# if ([ -x $(unsubdir)/../gcc$(subdir)/gcc -a -d $(gcclibdir) ]); then \
# $(INSTALL_PROGRAM) ld.new $(gcclibdir)/ld; \
# cd $(bindir); rm -f ld; ln -s $(gcclibdir)/ld ld; \
# else \
# $(INSTALL_PROGRAM) ld.new $(bindir)/ld; \
# fi
#-----------------------------------------------------------------------------
# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT

View File

@ -1,10 +1,11 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
Written by Steve Chamberlain steve@cygnus.com
This file is part of GLD, the Gnu Linker.
GLD 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 1, or (at your option)
the Free Software Foundation; either version 2, or (at your option)
any later version.
GLD is distributed in the hope that it will be useful,
@ -17,8 +18,6 @@ along with GLD; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/*
* Written by Steve Chamberlain steve@cygnus.com
*
* $Id$
*/
@ -164,7 +163,8 @@ main (argc, argv)
multiple_def_count = 0;
commons_pending = 0;
config.magic_demand_paged = true ;
config.magic_demand_paged = true;
config.text_read_only = true;
config.make_executable = true;
if (emulation == (char *)NULL) {
emulation= DEFAULT_EMULATION;
@ -204,16 +204,10 @@ main (argc, argv)
info("%P%F: text marked read only, but no text section present");
}
found->flags |= SEC_READONLY;
output_bfd->flags |= WP_TEXT;
}
else {
output_bfd->flags |= WP_TEXT;
}
if (config.relocateable_output) {
output_bfd->flags &= ~( D_PAGED);
output_bfd->flags |= EXEC_P;
output_bfd->flags &= ~EXEC_P;
ldwrite();
bfd_close(output_bfd);
}
@ -508,6 +502,7 @@ struct lang_input_statement_struct *entry;
{
ldfile_open_file (entry);
#ifdef GNU960
if (gnu960_check_format(entry->the_bfd, bfd_object))
#else
@ -518,6 +513,11 @@ struct lang_input_statement_struct *entry;
Q_read_entry_symbols (entry->the_bfd, entry);
/* look through the sections in the file and see if any of them
are constructors */
ldlang_check_for_constructors (entry);
Q_enter_file_symbols (entry);
}
#ifdef GNU960

View File

@ -219,7 +219,7 @@ lang_input_statement_type *f;
else
{
asection *s;
if (true || option_longmap) {
if (option_longmap) {
for (s = f->the_bfd->sections;
s != (asection *)NULL;
s = s->next) {