Brought in from p3. If anybody knows good numbers for m68k COFF,

please let me know, or plug them in yourself.

Wed Sep  9 11:52:58 1992  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in, m68kcoff.sh, m68kcoff.sc-sh, config/m68k-coff.mt:
	added m68k-coff emulation mode, stolen from a29k emulation.
	Almost certainly wrong, but perhaps better than sun3.

Also fixed an error message in configure.in so that it started with
'***' like the other error messages do.
This commit is contained in:
Ian Lance Taylor 1992-09-09 18:59:11 +00:00
parent 66beed38d2
commit ab57b17418
6 changed files with 240 additions and 180 deletions

View File

@ -95,6 +95,8 @@ ldwrite.h
lexsup.c
lnk960.em
lnk960.sh
m68kcoff.sc-sh
m68kcoff.sh
m88kbcs.sc-sh
m88kbcs.sh
mri.c
@ -123,7 +125,20 @@ echo Done in `pwd`.
#
#
# $Log$
# Revision 1.43 1992/09/03 22:56:45 bothner
# Revision 1.44 1992/09/09 18:59:04 ian
# Brought in from p3. If anybody knows good numbers for m68k COFF,
# please let me know, or plug them in yourself.
#
# Wed Sep 9 11:52:58 1992 Ian Lance Taylor (ian@cygnus.com)
#
# * Makefile.in, m68kcoff.sh, m68kcoff.sc-sh, config/m68k-coff.mt:
# added m68k-coff emulation mode, stolen from a29k emulation.
# Almost certainly wrong, but perhaps better than sun3.
#
# Also fixed an error message in configure.in so that it started with
# '***' like the other error messages do.
#
# Revision 1.43 1992/09/03 22:56:45 bothner
# Add TODO.
#
# Revision 1.42 1992/09/01 22:14:49 bothner

View File

@ -1,5 +1,21 @@
Wed Sep 9 11:52:58 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in, m68kcoff.sh, m68kcoff.sc-sh, config/m68k-coff.mt:
added m68k-coff emulation mode, stolen from a29k emulation.
Almost certainly wrong, but perhaps better than sun3.
Thu Sep 3 14:19:30 1992 Per Bothner (bothner@rtl.cygnus.com)
* Makefile.in, Makefile.dos, generic.em, genscripts.sh,
gld960.em, h8300hms.em, h8300xray.em, lnk960.em, st2000.em,
vanilla.em: Rename all (generated) ld__*.c files to em_.c.
This is one character shorter, and lets people build on
SVR3 system. (ld__h8300xray.[co] was the killer there;
h8300xray.sc-sh is also overlong, but seems harmless.)
Based on a patch from Jonathan Ryshpan <hitachi!amito!jon>.
* Makefile.in (clean): Fix typo mostclean -> mostlyclean.
* configure.in: Add host isc.
* ldver.c: Call it version 2.0.
Wed Sep 2 00:21:33 1992 Per Bothner (bothner@rtl.cygnus.com)

View File

@ -115,12 +115,14 @@ LD_PROG = ld.new
BFDLIB=./../bfd/libbfd.a
LIBIBERTY=./../libiberty/libiberty.a
ALL_EMULATIONS=ld__lnk960.o ld__sun3.o ld__i386aout.o \
ld__go32.o ld__m88kbcs.o ld__a29k.o ld__news.o ld__hp300bsd.o ld__h8300hms.o ld__ebmon29k.o \
ld__sun4.o ld__gld960.o ld__vanilla.o ld__h8300xray.o ld__st2000.o ld__sa29200.o
ALL_EMULATIONS=em_lnk960.o em_sun3.o em_i386aout.o em_go32.o \
em_m88kbcs.o em_a29k.o em_news.o em_hp300bsd.o \
em_h8300hms.o em_ebmon29k.o em_sun4.o em_gld960.o \
em_m68kcoff.o em_h8300xray.o em_st2000.o em_sa29200.o \
em_vanilla.o
EMULATION_OFILES=${ALL_EMULATIONS}
#EMULATION_OFILES=ld__${EMUL}.o ${OTHER_EMULATIONS}
#EMULATION_OFILES=em_${EMUL}.o ${OTHER_EMULATIONS}
OFILES= ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldindr.o \
ldwarn.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldsym.o \
@ -133,11 +135,11 @@ HEADERS=config.h ldmain.h ldmain.h ldwarn.h ldmisc.h ldindr.h \
MANSOURCES=ld.tex
LDCSOURCES=ldlang.c lexsup.c ldctor.c mri.c ldindr.c ldmain.c ldwrite.c ldwarn.c ldlnk960.c \
ld__gld.c ld__sun3.c ld__go32.c ld__m88k.c ld__ebmon29k.c \
em_gld.c em_sun3.c em_go32.c em_m88k.c em_ebmon29k.c \
ldgld960.c ldemul.c ldver.c ldmisc.c ldexp.c ldsym.c ldfile.c \
relax.c lderror.c
GENERATED_SOURCES=ldgram.c ldlex.c ld__*.c ldemul-list.h
GENERATED_SOURCES=ldgram.c ldlex.c em_*.c ldemul-list.h
GENERATED_HEADERS=ldgram.h ldemul-list.h
LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l ldgram.h
@ -147,7 +149,7 @@ BFDSOURCES=../../bfd/common/*.c
SOURCES= $(LDSOURCES) $(BFDSOURCES)
LINTSOURCES= $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES)
STAGESTUFF = *.x *.x[runN] *.sc[runN] $(GENERATED_SOURCES) $(GENERATED_HEADERS) $(OFILES) $(LD_PROG) mkscript
STAGESTUFF = *.x *.x[runN] *.sc[runN] $(GENERATED_SOURCES) $(GENERATED_HEADERS) $(OFILES) mkscript
all: Makefile $(LD_PROG)
@ -165,13 +167,13 @@ ldmain.o: ldmain.c
ldemul-list.h: Makefile
(echo "/* This file is automatically generated. DO NOT EDIT! */";\
for f in `echo " " ${EMULATION_OFILES} "" \
| sed -e 's/ld__/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
| sed -e 's/em_/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
echo "extern ld_emulation_xfer_type ld_$${f}_emulation;"; \
done;\
echo "";\
echo "#define EMULATION_LIST \\";\
for f in `echo " " ${EMULATION_OFILES} "" \
| sed -e 's/ld__/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
| sed -e 's/em_/ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
echo " &ld_$${f}_emulation, \\"; \
done;\
echo " 0") >ldemul-list.h
@ -182,59 +184,62 @@ ldlex.c: ldlex.l
$(LEX) -I -Cem $(srcdir)/ldlex.l
mv lex.yy.c ldlex.c
# These all start with ld__ so 'make clean' can find them.
# These all start with em_ so 'make clean' can find them.
GENSCRIPTS=sh $(srcdir)/genscripts.sh ${srcdir} ${host_alias} ${target_alias}
GEN_DEPENDS=./mkscript $(srcdir)/genscripts.sh
ld__sun4.c: $(srcdir)/sun4.sh \
em_sun4.c: $(srcdir)/sun4.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} sun4.sh
ld__sun3.c: $(srcdir)/sun3.sh \
em_sun3.c: $(srcdir)/sun3.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} sun3.sh
ld__go32.c: $(srcdir)/go32.sh \
em_go32.c: $(srcdir)/go32.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} go32.sh
ld__news.c: $(srcdir)/news.sh \
em_news.c: $(srcdir)/news.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} news.sh
ld__hp300bsd.c: $(srcdir)/hp300bsd.sh \
em_hp300bsd.c: $(srcdir)/hp300bsd.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} hp300bsd.sh
ld__i386aout.c: $(srcdir)/i386aout.sh \
em_i386aout.c: $(srcdir)/i386aout.sh \
$(srcdir)/generic.em $(srcdir)/aout.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} i386aout.sh
ld__ebmon29k.c: $(srcdir)/ebmon29k.sh \
em_ebmon29k.c: $(srcdir)/ebmon29k.sh \
$(srcdir)/generic.em $(srcdir)/ebmon29k.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} ebmon29k.sh
ld__sa29200.c: $(srcdir)/sa29200.sh \
em_sa29200.c: $(srcdir)/sa29200.sh \
$(srcdir)/generic.em $(srcdir)/sa29200.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} sa29200.sh
ld__a29k.c: $(srcdir)/a29k.sh \
em_a29k.c: $(srcdir)/a29k.sh \
$(srcdir)/generic.em $(srcdir)/a29k.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} a29k.sh
ld__m88kbcs.c: $(srcdir)/m88kbcs.sh \
em_m88kbcs.c: $(srcdir)/m88kbcs.sh \
$(srcdir)/generic.em $(srcdir)/h8300hms.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} m88kbcs.sh
ld__h8300hms.c: $(srcdir)/h8300hms.sh \
em_h8300hms.c: $(srcdir)/h8300hms.sh \
$(srcdir)/h8300hms.em $(srcdir)/h8300hms.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} h8300hms.sh
ld__h8300xray.c: $(srcdir)/h8300xray.sh \
em_h8300xray.c: $(srcdir)/h8300xray.sh \
$(srcdir)/h8300xray.em $(srcdir)/h8300xray.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} h8300xray.sh
ld__st2000.c: $(srcdir)/st2000.sh \
em_st2000.c: $(srcdir)/st2000.sh \
$(srcdir)/st2000.em $(srcdir)/st2000.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} st2000.sh
ld__vanilla.c: $(srcdir)/vanilla.sh \
em_vanilla.c: $(srcdir)/vanilla.sh \
$(srcdir)/vanilla.em $(srcdir)/vanilla.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} vanilla.sh
ld__lnk960.c: $(srcdir)/lnk960.sh \
em_lnk960.c: $(srcdir)/lnk960.sh \
$(srcdir)/lnk960.em $(srcdir)/i960.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} lnk960.sh
ld__gld960.c: $(srcdir)/gld960.sh \
em_gld960.c: $(srcdir)/gld960.sh \
$(srcdir)/gld960.em $(srcdir)/i960.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} gld960.sh
em_m68kcoff.c: $(srcdir)/m68kcoff.sh \
$(srcdir)/generic.em $(srcdir)/m68kcoff.sc-sh ${GEN_DEPENDS}
${GENSCRIPTS} m68kcoff.sh
$(LD_PROG): $(OFILES) $(BFDLIB) $(LIBIBERTY)
$(CC) $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) $(CDEFINES) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(LOADLIBES)
@ -363,7 +368,7 @@ ld-index.me: ld.me
######################################################################
./mkscript: $(srcdir)/mkscript.c
$(HOST_CC) -o mkscript $(srcdir)/mkscript.c
$(HOST_CC) -o mkscript $(srcdir)/mkscript.c
ldlex.c: ldlex.l ldgram.h
ldlex.o: ldlex.c ldgram.h
@ -376,23 +381,23 @@ st2000.o:st2000.c
stage1: force
-mkdir stage1
-mv -f $(STAGESTUFF) stage1
-mv -f $(STAGESTUFF) $(LD_PROG) stage1
-(cd stage1 ; ln -s $(LD_PROG) ld)
stage2: force
-mkdir stage2
-mv -f $(STAGESTUFF) stage2
-mv -f $(STAGESTUFF) $(LD_PROG) stage2
-(cd stage2 ; ln -s $(LD_PROG) ld)
stage3: force
-mkdir stage3
-mv -f $(STAGESTUFF) stage3
-mv -f $(STAGESTUFF) $(LD_PROG) stage3
-(cd stage3 ; ln -s $(LD_PROG) ld)
against=stage2
comparison: force
for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done
for i in $(STAGESTUFF) $(LD_PROG) ; do cmp $$i $(against)/$$i ; done
de-stage1: force
-(cd stage1 ; mv -f * ..)
@ -409,10 +414,19 @@ de-stage3: force
-rm ld
-rmdir stage3
clean:
-rm -f TAGS $(STAGESTUFF)
-rm -f ld.?? ld.??? ldlex.[qp]
# Stuff that should be included in a distribution:
LDDISTSTUFF=ldgram.c ldgram.h ldlex.c ld.mm
diststuff: $(LDDISTSTUFF)
mostlyclean:
-rm -f $(STAGESTUFF) ld.?? ld.??? ldlex.[qp]
-rm -f ld ld1 ld2 ld3 *.o y.output cdtest cdtest.out
clean: mostlyclean
-rm -f $(LD_PROG)
distclean: clean
-rm -f Makefile config.status TAGS
realclean: distclean
-rm -f $(LDDISTSTUFF)
lintlog:$(SOURCES) Makefile
$(LINT) -abhxzn $(LINTFLAGS) $(LINTSOURCES) \

View File

@ -9,102 +9,68 @@ target_dependent=true
# per-host:
case "${host_cpu}" in
case "${host}" in
rs6000) my_host=rs6000
;;
hppa*)
case "${host_vendor}" in
hp)
case "${host_os}" in
hpux) my_host=hppahpux ;;
bsd) my_host=hppabsd ;;
esac
;;
esac
;;
mips)
case "${host_vendor}" in
dec) my_host=decstation ;;
sgi) my_host=irix3 ;;
esac
;;
m88k)
case "${host_vendor}" in
motorola)
my_host=delta88 ;;
*)
case "${host_os}" in
dgux) my_host=dgux ;;
esac
;;
esac
;;
m68*)
case "${host_vendor}" in
cbm)
case ${host_os} in
amigados) my_host=amigados ;;
svr4) my_host=amix ;;
esac
;;
hp)
case "${host_os}" in
hpux) my_host=hp9000 ;;
bsd) my_host=hp300bsd ;;
esac
;;
apollo*)
case "${host_os}" in
sysv*) my_host=apollov68 ;;
bsd*) my_host=apollo68;;
esac
;;
sony) my_host=news ;;
sun) my_host=sun3 ;;
esac
;;
i386)
case "${host_vendor}" in
*)
case "${host_os}" in
go32) my_host=go32 ;;
sysv) my_host=i386v ;;
mach) my_host=i386mach ;;
bsd) my_host=i386-aout ;;
msdos) my_host=dose ;;
esac
;;
esac
;;
sparc)
case "${host_os}" in
sunos64) my_host=sparc-ll ;;
*) my_host=sparc ;;
esac
;;
romp) my_host=rtbsd
;;
a29k) my_host=ultra3
;;
tahoe)
my_host=tahoe
;;
vax)
case "${host_os}" in
ultrix) my_host=vaxult ;;
*) my_host=vaxbsd ;;
esac
;;
rs6000-ibm-aix*) my_host=rs6000
;;
hppa*-hp-hpux) my_host=hppahpux
;;
hppa*-hp-bsd) my_host=hppabsd
;;
mips-dec-ultrix*) my_host=decstation
;;
mips-sgi-irix3*) my_host=irix3
;;
mips-sgi-irix4*) my_host=irix4
;;
m88k-motorola-*) my_host=delta88
;;
m88k-dg-dgux*) my_host=dgux
;;
m68k-cbm-amigados) my_host=amigados
;;
m68k-cbm-svr4) my_host=amix
;;
m68k-hp-hpux) my_host=hp9000 # FIXME this should 9000/xxx
;;
m68k-hp-bsd) my_host=hp300bsd
;;
m68k-apollo*-sysv*) my_host=apollov68
;;
m68k-apollo*-bsd*) my_host=apollo68
;;
m68k-sony-*) my_host=news
;;
m68k-sun-sunos*) my_host=sun3
;;
i386-go32-*) my_host=go32
;;
i386-*-sysv) my_host=i386v
;;
i386-*-isc) my_host=isc
;;
i386-*-mach) my_host=i386mach
;;
i386-*-bsd) my_host=i386-aout
;;
i386-*-msdos) my_host=dose
;;
sparc-sun-sunos64) my_host=sparc-ll
;;
sparc-sun-sunos4*) my_host=sparc
;;
sparc-sun-solaris2) my_host=solaris2
;;
romp-*-*) my_host=rtbsd
;;
a29k-*-*) my_host=ultra3
;;
tahoe-*-*) my_host=tahoe
;;
vax-dec-ultrix*) my_host=vaxult
;;
vax-dec-bsd*) my_host=vaxbsd
;;
esac
# Set up to make a link between the host's include file and "sysdep.h".
@ -118,64 +84,68 @@ if [ ! -f ${srcdir}/${files} ] ; then
echo '***' ${srcname} does not support host ${host} 1>&2
exit 1
fi
host_makefile_frag=
if [ -f ${srcdir}/config/${my_host}.mh ] ; then
host_makefile_frag=config/${my_host}.mh
fi
# per-target:
case ${target_vendor} in
aout | coff) my_target=${target_cpu}-${target_vendor} ;;
sun)
case ${target_cpu} in
sparc) my_target=sun4 ;;
m68k) my_target=sun3 ;;
esac
;;
wrs)
case ${target_cpu} in
i960) my_target=vxworks960 ;;
m68k) my_target=vxworks68;;
m680[01234]0) my_target=vxworks68;;
m683?2) my_target=vxworks68;;
sparc) my_target=vxsparc;;
esac
;;
ericsson) my_target=ose68 ;;
tandem) my_target=st2000 ;;
*)
case ${target_cpu} in
i386) my_target=go32 ;;
m88k) my_target=m88k-bcs ;;
a29k) case ${target_os} in
udi) my_target=sa29200 ;;
ebmon) my_target=ebmon29k ;;
*) my_target=coff-a29k ;;
esac
;;
h8300) case ${target_os} in
hms) my_target=coff-h8300 ;;
xray) my_target=ieee-h8300 ;;
esac
;;
m68*)
case ${target_vendor} in
sony) my_target=news ;;
hp) my_target=hp300bsd ;;
*)
case "${target_os}" in
aout) my_target=m68k-aout ;;
coff) my_target=m68k-coff ;;
*) echo "Unknown m68k target vendor:" ${target_vendor} 1>&2
exit 1
;;
esac
case "${target}" in
sparc-sun-sunos4*) my_target=sun4
;;
m68k-sun-sunos4*) my_target=sun3
;;
sparclite-fujitsu-*) my_target=sun4
;;
i960-wrs-vxworks*) my_target=vxworks960
;;
m68k-wrs-vxworks*) my_target=vxworks68
;;
m680[01234]0-wrs-vxworks*) my_target=vxworks68
;;
m683?2-wrs-vxworks*) my_target=vxworks68
;;
sparc-wrs-vxworks*) my_target=vxsparc
;;
m68k-ericsson-ose) my_target=ose68
;;
*-tandem-none) my_target=st2000 # FIXME needs better name
;;
i386-go32-*) my_target=go32
;;
m88k-*-*) my_target=m88k-bcs
;;
a29k-*-udi) my_target=sa29200
;;
a29k-*-ebmon) my_target=ebmon29k
;;
a29k-*-*) my_target=coff-a29k
;;
h8300-*-hms) my_target=coff-h8300
;;
h8300-*-xray) my_target=ieee-h8300
;;
m68k-sony-*) my_target=news
;;
m68k-hp-bsd*) my_target=hp300bsd
;;
m68*-*-aout) my_target=m68k
;;
m68*-*-coff) my_target=m68k-coff
;;
m68*-*-*) echo '***' "Unknown m68k target vendor for ld:" ${target_vendor} 1>&2
exit 1
;;
*-*-aout) my_target=${target_cpu}-${target_vendor}
;;
*-*-coff) my_target=${target_cpu}-${target_vendor}
;;
esac
;;
esac
;;
esac
target_makefile_frag=config/${my_target}.mt

39
ld/m68kcoff.sc-sh Normal file
View File

@ -0,0 +1,39 @@
# This is totally made up, from the a29k stuff. If you know better,
# tell us about it.
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
MEMORY {
text : ORIGIN = 0x1000000, LENGTH = 0x1000000
talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
data : ORIGIN = 0x3000000, LENGTH = 0x1000000
mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
}
SECTIONS
{
.text : {
*(.text)
${RELOCATING+ _etext = .};
*(.lit)
*(.shdata)
} ${RELOCATING+ > text}
.shbss SIZEOF(.text) + ADDR(.text) : {
*(.shbss)
}
.talias : { } ${RELOCATING+ > talias}
.data : {
*(.data)
${RELOCATING+ _edata = .};
} ${RELOCATING+ > data}
.bss SIZEOF(.data) + ADDR(.data) :
{
*(.bss)
*(COMMON)
${RELOCATING+ _end = ALIGN(0x8)};
}
.mstack : { } ${RELOCATING+ > mstack}
.rstack : { } ${RELOCATING+ > rstack}
}
EOF

6
ld/m68kcoff.sh Normal file
View File

@ -0,0 +1,6 @@
EMULATION_NAME=m68kcoff
SCRIPT_NAME=m68kcoff
OUTPUT_FORMAT="coff-m68k"
TEXT_START_ADDR=0x1000000
PAGE_SIZE=0x1000000
ARCH=m68k