From ab57b17418b4b7fa56069fa320e1455ff5dea081 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 9 Sep 1992 18:59:11 +0000 Subject: [PATCH] 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. --- ld/.Sanitize | 17 ++- ld/ChangeLog | 16 +++ ld/Makefile.in | 82 +++++++++------ ld/configure.in | 262 ++++++++++++++++++++-------------------------- ld/m68kcoff.sc-sh | 39 +++++++ ld/m68kcoff.sh | 6 ++ 6 files changed, 241 insertions(+), 181 deletions(-) create mode 100644 ld/m68kcoff.sc-sh create mode 100644 ld/m68kcoff.sh diff --git a/ld/.Sanitize b/ld/.Sanitize index 49708ab307f..1111ced77a0 100644 --- a/ld/.Sanitize +++ b/ld/.Sanitize @@ -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 diff --git a/ld/ChangeLog b/ld/ChangeLog index 4e1c8387a48..e3a6e8e28cf 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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 . + * 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) diff --git a/ld/Makefile.in b/ld/Makefile.in index 34c55e7f949..2c3f1f0e30f 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -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) \ diff --git a/ld/configure.in b/ld/configure.in index bd95af30e76..249628cdff1 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -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 - ;; - esac - ;; - 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 + + target_makefile_frag=config/${my_target}.mt diff --git a/ld/m68kcoff.sc-sh b/ld/m68kcoff.sc-sh new file mode 100644 index 00000000000..485f3bb8ed1 --- /dev/null +++ b/ld/m68kcoff.sc-sh @@ -0,0 +1,39 @@ +# This is totally made up, from the a29k stuff. If you know better, +# tell us about it. +cat < 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 diff --git a/ld/m68kcoff.sh b/ld/m68kcoff.sh new file mode 100644 index 00000000000..14c66527fc9 --- /dev/null +++ b/ld/m68kcoff.sh @@ -0,0 +1,6 @@ +EMULATION_NAME=m68kcoff +SCRIPT_NAME=m68kcoff +OUTPUT_FORMAT="coff-m68k" +TEXT_START_ADDR=0x1000000 +PAGE_SIZE=0x1000000 +ARCH=m68k -- 2.30.2