From 180acef58b4499b86896d6a7e2234c3e04bc1f02 Mon Sep 17 00:00:00 2001 From: David MacKenzie Date: Thu, 12 Aug 1993 17:57:02 +0000 Subject: [PATCH] Thu Aug 12 10:32:47 1993 David J. Mackenzie (djm@thepub.cygnus.com) * config/u68k-coff.mt: Fix typo, DEFAULT_TARGET for DEFAULT_VECTOR. * config/h8300-coff.mt, h8500-coff.mt, sh-coff.mt, st2000.mt, z8k-coff.mt (DEFAULT_VECTOR): Define. Don't explicitly add S-records via SELECT_VECS. * targets.c (target_vector), Makefile.in (BFD_LIBS): Always support S-records, for convenience. * config.bfd: New file, broken out of configure.in. * configure.in: Use it, and use standard target names for --with-targets, replacing --with-bfd-targets. --- bfd/Makefile.in | 14 ++++-- bfd/configure.in | 127 +++++++++-------------------------------------- bfd/targets.c | 9 +++- 3 files changed, 42 insertions(+), 108 deletions(-) diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 34546bbdf55..5948e9d4996 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -74,9 +74,17 @@ BFD_H = bfd.h # hacks to work, they're also included here for now. # gdb: ecoff.o # objdump: elf.o +# +# Also, Jim Kingdon notes: +# Writing S-records should be included in all (or at least most) +# *-*-coff, *-*-aout, etc., configurations, because people will want to +# be able to use objcopy to create S-records. (S-records are not useful +# for the debugger, so if you are downloading things as S-records you +# need two copies of the executable, one to download and one for the +# debugger). BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o \ archures.o core.o section.o format.o syms.o reloc.o init.o \ - ctor.o seclet.o coffgen.o ecoff.o reloc16.o elf.o + ctor.o seclet.o coffgen.o ecoff.o reloc16.o elf.o srec.o ALL_MACHINES = cpu-h8300.o cpu-i960.o cpu-sparc.o cpu-m68k.o cpu-m88k.o \ cpu-vax.o cpu-mips.o cpu-a29k.o cpu-i386.o cpu-rs6000.o cpu-hppa.o \ @@ -236,10 +244,10 @@ clean: do_clean $(MAKE) subdir_do DO=clean "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) distclean: $(MAKE) subdir_do DO=distclean "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) - make do_distclean + $(MAKE) do_distclean clobber realclean: $(MAKE) subdir_do DO=realclean "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) - make do_realclean + $(MAKE) do_realclean # Mark everything as depending on config.status, since the timestamp on # sysdep.h might actually move backwards if we reconfig and relink it diff --git a/bfd/configure.in b/bfd/configure.in index f5d82094d94..ffd6e11502e 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -31,119 +31,40 @@ fi # per-target: -# WHEN ADDING ENTRIES TO THIS MATRIX: -# Make sure that the left side always has two dashes. Otherwise you -# can get spurious matches. Even for unambiguous cases, do this as a -# convention, else the table becomes a real mess to understand and maintain. - -case "${target}" in - alpha-*-*) bfd_target=alphaosf ;; - a29k-*-ebmon) bfd_target=a29k-coff ;; - a29k-*-udi) bfd_target=a29k-coff ;; - a29k-*-aout) bfd_target=a29k-aout ;; - a29k-*-coff) bfd_target=a29k-coff ;; - a29k-*-sym1) bfd_target=a29k-coff ;; - h8300*-*-*) bfd_target=h8300-coff ;; - h8500-*-*) bfd_target=h8500-coff ;; - sh-*-*) bfd_target=sh-coff ;; - hppa*-*-bsd*) bfd_target=hppabsd ;; - hppa*-*-hpux*) bfd_target=hppahpux ;; - hppa*-*-osf) bfd_target=hppa-elf ;; - i[34]86-*-sysv4*) bfd_target=i386-elf ;; - i[34]86-*-sysv*) bfd_target=i386-coff ;; - i[34]86-*-isc*) bfd_target=i386-sco ;; # gets core dump reading right - i[34]86-*-sco*) bfd_target=i386-sco ;; - i[34]86-*-bsd*) bfd_target=i386-bsd ;; - i[34]86-*-lynxos*) bfd_target=i386-lynx ;; - i[34]86-*-coff) bfd_target=i386-coff ;; - i[34]86-*-aix*) bfd_target=i386-coff ;; - i[34]86-*-elf) bfd_target=i386-elf ;; - i[34]86-*-netware*) bfd_target=i386-nlm ;; - i[34]86-*-linux*) bfd_target=i386-linux ;; - i[34]86-*-lynx*) bfd_target=i386-lynx ;; - i[34]86-none-*) bfd_target=i386-coff ;; - i960-*-vxworks) bfd_target=i960-bout ;; - i960-*-aout) bfd_target=i960-bout ;; - i960-*-bout) bfd_target=i960-bout ;; - m68*-bull-sysv*) bfd_target=u68k-coff ;; - m68*-hp-bsd*) bfd_target=hp300bsd ;; - m68*-*-aout) bfd_target=m68k-aout ;; - m68*-*-coff) bfd_target=m68k-coff ;; - m68*-*-hpux*) bfd_target=hp300hpux ;; - m68*-*-os68k) bfd_target=m68k-aout ;; - m68*-*-sunos*) bfd_target=m68k-aout ;; - m68*-*-sysv*) bfd_target=m68k-coff ;; - m68*-*-vxworks*) bfd_target=m68k-aout ;; - m68*-ericsson-*) bfd_target=m68k-aout ;; - m68*-netx-*) bfd_target=m68k-aout ;; - m88k-*-*) bfd_target=m88k-coff ;; - mips-big-*) bfd_target=bigmips ;; - mips-dec-bsd*) bfd_target=mipsdecbsd ;; - mips-dec-*) bfd_target=decstation ;; - mips-*-ecoffl*) bfd_target=decstation ;; - mips-*-ecoff*) bfd_target=bigmips ;; - mips-sgi-*) bfd_target=bigmips ;; - mips-*-sysv*) bfd_target=riscos ;; - mips-*-riscos*) bfd_target=riscos ;; - mips-*-bsd*) bfd_target=noop ;; - rs6000-*-*) bfd_target=rs6000 ;; - sparc-*-solaris2*) bfd_target=sparc-elf ;; - sparc-*-sysv4*) bfd_target=sparc-elf ;; -# start-sanitize-v9 -# Don't set target64=true for sparc64-*-aout*. Keep it using the 32bit stuff -# so we continue to have something that works (until the 64 bit support is -# rock solid). - sparc64-*-aout*) bfd_target=sparc-aout ;; - sparc64-*-elf*) bfd_target=sparc64-elf ; target64=true ;; -# end-sanitize-v9 - sparc*-*-*) bfd_target=sparc-aout ;; - tahoe-*-*) bfd_target=tahoe ;; - vax-*-vms) bfd_target=vax-vms ;; - vax-*-*) bfd_target=vax ;; - we32k-*-*) bfd_target=we32k ;; - z8k*-*-*) bfd_target=z8k-coff ;; - - *-*-aout) bfd_target=${target_cpu}-aout ;; - *-*-bsd*) bfd_target=${target_cpu}-aout ;; - *-*-netware*) bfd_target=${target_cpu}-nlm ;; - *-*-sysv4*) bfd_target=${target_cpu}-elf ;; - *-*-solaris2*) bfd_target=${target_cpu}-elf ;; - *-*-go32) bfd_target=${target_cpu}-aout ;; - *-*-sysv*) bfd_target=${target_cpu}-coff ;; - - *-*-aout64) bfd_target=${target_cpu}-aout64 ; target64=true ;; - *-*-elf64) bfd_target=${target_cpu}-elf64 ; target64=true ;; - - *-adobe-*) bfd_target=adobe ;; - *-sony-*) bfd_target=news ;; - *-intel-*) bfd_target=${target_cpu}-coff ;; - *-stratus-*) bfd_target=${target_cpu}-elf ;; - *-cbm-*) bfd_target=${target_cpu}-elf ;; - *-ncr-*) bfd_target=${target_cpu}-elf ;; - *-tandem-*) bfd_target=st2000 ;; -esac - -[ -z "$bfd_target" ] && bfd_target="$target" # For error message. +# Canonicalize the secondary target names. +if [ -n "$with_targets" ]; then + for targ in `echo $with_targets | sed 's/,/ /g'` + do + result=`$configsub $targ 2>/dev/null` + if [ -n "$result" ]; then + canon_targets="$canon_targets $result" + else + # Allow targets that config.sub doesn't recognize, like "all". + canon_targets="$canon_targets $targ" + fi + done +fi all_targets=false -for targ in $bfd_target `echo $with_bfd_targets | sed 's/,/ /g'` + +for targ in $target $canon_targets do - if [ "x$targ" = "xall" ]; then + bfd_target=`$srcdir/config.bfd $targ $target_cpu` + + if [ "x$bfd_target" = "xall" ]; then all_targets=true else - if [ ! -f ${srcdir}/config/${targ}.mt ] ; then - if [ -n "${targ}" ] ; then - echo '***' No file ${srcdir}/config/${targ}.mt 1>&2 - fi - echo '***' BFD does not support target ${targ} 1>&2 + if [ ! -f ${srcdir}/config/${bfd_target}.mt ] ; then + echo '***' No file ${srcdir}/config/${bfd_target}.mt 1>&2 + echo '***' BFD does not support target ${bfd_target} 1>&2 echo '***' Look in bfd/configure.in for supported targets 1>&2 exit 1 fi - if [ "x$bfd_target" = "x$targ" ]; then - target_makefile_frag=${srcdir}/config/${targ}.mt + if [ "x$targ" = "x$target" ]; then + target_makefile_frag=${srcdir}/config/${bfd_target}.mt else - target_extra_frags="$target_extra_frags ${srcdir}/config/${targ}.mt" + target_extra_frags="$target_extra_frags ${srcdir}/config/${bfd_target}.mt" fi fi done diff --git a/bfd/targets.c b/bfd/targets.c index e4e3fb42960..ce819056253 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -373,6 +373,9 @@ extern bfd_target shcoff_vec; extern bfd_target hp300hpux_vec; extern bfd_target hp300bsd_vec; extern bfd_target hppa_vec; +/* start-sanitize-v9 */ +extern bfd_target bfd_elf64_sparc_vec; +/* end-sanitize-v9 */ bfd_target *target_vector[] = { @@ -405,8 +408,6 @@ bfd_target *target_vector[] = { &h8300coff_vec, &z8kcoff_vec, &m88kbcs_vec, - &srec_vec, - &symbolsrec_vec, #if 0 &tekhex_vec, #endif @@ -446,6 +447,10 @@ bfd_target *target_vector[] = { #endif /* not SELECT_VECS */ +/* Always support S-records, for convenience. */ + &srec_vec, + &symbolsrec_vec, + /* Add any required traditional-core-file-handler. */ #ifdef TRAD_CORE -- 2.30.2