Insert the incidentals and things I forgot to ci last time, same log message:
authorSteve Chamberlain <steve@cygnus>
Tue, 1 Oct 1991 03:55:40 +0000 (03:55 +0000)
committerSteve Chamberlain <steve@cygnus>
Tue, 1 Oct 1991 03:55:40 +0000 (03:55 +0000)
Mon Sep 30 15:13:46 1991  Steve Chamberlain  (steve at cygnus.com)

* cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c,
cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These
files will eventually contain processor specific bits for bfd,
like strange relocation information and dis/assembly.  So far only
the H8 has been even partially done.  This work also ties in with
the change in handling architectures.

* amdcoff.c: (a29k_reloc) fix error message.

* aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to
discover the architecture of the bfd. (sunos4_callback) calls the
function bfd_set_arch_mach rather than stuffing stuff directly
into the bfd. (sunos4_write_object_contents), changed names of
accessor functions.

* aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to
setup the environment.

* archive.c: (bfd_slurp_coff_armap) coff archives always have the
headers in big endian format, regardless of the endianess of the
host or target.

* archures.c: totally changed. Now an architecture is represented
with a pointer to an info structure rather than an enumerated type
and a long. The old info is available as two elements in the
structure.  Future enhancements to architecure support will
involve pointers to methods being placed into the info structure.

* bfd.c: changed the definition of the bfd structure for the new
architecture stuff.

* bout.c: (b_out_set_arch_mach) changed to use the new
architecture mechanism.

* coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use
the new architecture mechanism.

* configure.in: added h8 stuff.

* ieee.c: too many changes to note.  Now ieee files written with
bfd gas and ld can be read by gld and ieee only linkers and
simulators.

* libbfd.c, libbfd.h: changed prototype of bfd_write.

* newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather
than fixing the structure directly.

* oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather
than fixing the structure directly.

* opncls.c: (new_bfd) makes sure that bfd_init has been called
before opening a bfd.

* srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach
rather than fixing the structure directly.

* targets.c: (target_vector) now by defining SELECT_VECS (perhaps
in the t/hmake file) a user can select which backends they want
linked with bfd without changing the source.

* init.c: new, looks after initializing modules.

* howto.c: for future use, will allow an application to work out
what cookie to use as a handle on a relcoatio howto.

bfd/.Sanitize
bfd/Makefile.in
bfd/bfd-in.h [new file with mode: 0644]
bfd/coff-a29k.c
bfd/configure
bfd/libbfd.h

index c848c12f6cc52f3e4bb54071ea45f8d09887c500..58c808b05755778a2076138e696dc8b15e3f38fd 100644 (file)
@@ -59,6 +59,17 @@ icoff.c
 ieee.c
 libaout.h
 libbfd-in.h
+cpu-a29k.c
+cpu-i386.c
+cpu-m68k.c
+cpu-mips.c
+cpu-vax.c
+cpu-h8300.c
+cpu-i960.c
+cpu-m88k.c
+init.c
+howto.c
+cpu-sparc.c
 libbfd.c
 libbfd.h
 libcoff-in.h
@@ -102,7 +113,78 @@ echo Done in `pwd`.
 #
 #
 # $Log$
-# Revision 1.20  1991/09/04 03:59:15  rich
+# Revision 1.21  1991/10/01 03:55:34  steve
+# Insert the incidentals and things I forgot to ci last time, same log message:
+#
+# Mon Sep 30 15:13:46 1991  Steve Chamberlain  (steve at cygnus.com)
+#
+#      * cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c,
+#      cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These
+#      files will eventually contain processor specific bits for bfd,
+#      like strange relocation information and dis/assembly.  So far only
+#      the H8 has been even partially done.  This work also ties in with
+#      the change in handling architectures.
+#
+#      * amdcoff.c: (a29k_reloc) fix error message.
+#
+#      * aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to
+#      discover the architecture of the bfd. (sunos4_callback) calls the
+#      function bfd_set_arch_mach rather than stuffing stuff directly
+#      into the bfd. (sunos4_write_object_contents), changed names of
+#      accessor functions.
+#
+#      * aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to
+#      setup the environment.
+#
+#      * archive.c: (bfd_slurp_coff_armap) coff archives always have the
+#      headers in big endian format, regardless of the endianess of the
+#      host or target.
+#
+#      * archures.c: totally changed. Now an architecture is represented
+#      with a pointer to an info structure rather than an enumerated type
+#      and a long. The old info is available as two elements in the
+#      structure.  Future enhancements to architecure support will
+#      involve pointers to methods being placed into the info structure.
+#
+#      * bfd.c: changed the definition of the bfd structure for the new
+#      architecture stuff.
+#
+#      * bout.c: (b_out_set_arch_mach) changed to use the new
+#      architecture mechanism.
+#
+#      * coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use
+#      the new architecture mechanism.
+#
+#      * configure.in: added h8 stuff.
+#
+#      * ieee.c: too many changes to note.  Now ieee files written with
+#      bfd gas and ld can be read by gld and ieee only linkers and
+#      simulators.
+#
+#      * libbfd.c, libbfd.h: changed prototype of bfd_write.
+#
+#      * newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather
+#      than fixing the structure directly.
+#
+#      * oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather
+#      than fixing the structure directly.
+#
+#      * opncls.c: (new_bfd) makes sure that bfd_init has been called
+#      before opening a bfd.
+#
+#      * srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach
+#      rather than fixing the structure directly.
+#
+#      * targets.c: (target_vector) now by defining SELECT_VECS (perhaps
+#      in the t/hmake file) a user can select which backends they want
+#      linked with bfd without changing the source.
+#
+#      * init.c: new, looks after initializing modules.
+#
+#      * howto.c: for future use, will allow an application to work out
+#      what cookie to use as a handle on a relcoatio howto.
+#
+# Revision 1.20  1991/09/04  03:59:15  rich
 # Added "recover"'ability.
 #
 # Revision 1.19  1991/09/03  22:21:30  rich
index 136de67e5716c964af99bb14adc5323a496411fb..4d25568b52c75c6d1d196d13a513cbba1f457d33 100644 (file)
@@ -41,12 +41,16 @@ CFLAGS = -g $(HDEFINES) $(TDEFINES) $(CSEARCH) $(CSWITCHES) # -DINTEL960VERSION
 
 
 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
+       archures.o core.o section.o format.o syms.o reloc.o init.o
+
+BFD_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
 
 BFD_BACKENDS = oasys.o ieee.o srec.o \
        aout64.o aout32.o demo64.o sunos.o newsos3.o bout.o \
        icoff.o amdcoff.o m68kcoff.o i386coff.o m88k-bcs.o ecoff.o
 
+
 OPTIONAL_BACKENDS = trad-core.o
 
 BFD_H=$(INCDIR)/bfd.h
@@ -56,15 +60,18 @@ SYSDEP_H=$(INCDIR)/sysdep.h
 CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \
         i386coff.c aout64.c aout32.c sunos.c demo64.c icoff.c srec.c \
         oasys.c ieee.c m68kcoff.c amdcoff.c \
-        format.c section.c core.c syms.c reloc.c \
-        m88k-bcs.c ecoff.c trad-core.c newsos3.c bout.c
+        format.c section.c core.c syms.c reloc.c init.c \
+        m88k-bcs.c ecoff.c trad-core.c newsos3.c bout.c \
+       cpu-h8300.c cpu-i960.c   cpu-sparc.c cpu-m68k.c cpu-m88k.c \
+       cpu-vax.c cpu-mips.c cpu-a29k.c cpu-i386.o
+
 
 STAGESTUFF = $(TARGETLIB) $(OFILES)
 
 all: $(TARGETLIB) 
 
 # XDEPFILES comes from the host config; TDEPFILES from the target config.
-OFILES = $(BFD_LIBS) $(BFD_BACKENDS) $(XDEPFILES) $(TDEPFILES)
+OFILES = $(BFD_LIBS) $(BFD_BACKENDS) $(BFD_MACHINES) $(XDEPFILES) $(TDEPFILES)
 
 $(TARGETLIB): $(OFILES)
         rm -f $(TARGETLIB)
@@ -202,6 +209,9 @@ headers:
        cp $(docdir)/bfd.h $(BFD_H)
        cp $(docdir)/libbfd.h $(srcdir)/libbfd.h
        cp $(docdir)/libcoff.h $(srcdir)/libcoff.h
+       rm -f $(docdir)/bfd-in.h 
+       rm -f $(docdir)/libbfd-in.h 
+       rm -f $(docdir)/libcoff-in.h 
 
 bfd.info:
        ( cd $(docdir); $(MAKE) bfd.info)
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
new file mode 100644 (file)
index 0000000..d674618
--- /dev/null
@@ -0,0 +1,346 @@
+/* A -*- C -*- header file for the bfd library
+   Copyright 1990, 1991 Free Software Foundation, Inc.
+   Contributed by Cygnus Support.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+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.  */
+
+/* bfd.h -- The only header file required by users of the bfd library 
+
+This file is generated from various .c files, if you change it, your
+bits may be lost.
+
+All the prototypes and definitions following the comment "THE FOLLOWING
+IS EXTRACTED FROM THE SOURCE" are extracted from the source files for
+BFD.  If you change it, someone oneday will extract it from the source
+again, and your changes will be lost.  To save yourself from this bind,
+change the definitions in the source in the bfd directory.  Type "make
+docs" and then "make headers" in that directory, and magically this file
+will change to reflect your changes.
+
+If you don't have the tools to perform the extraction, then you are
+safe from someone on your system trampling over your header files.
+You should still maintain the equivalence between the source and this
+file though; every change you make to the .c file should be reflected
+here.  */
+
+#ifndef __BFD_H_SEEN__
+#define __BFD_H_SEEN__
+
+#include "ansidecl.h"
+#include "obstack.h"
+
+/* Make it easier to declare prototypes (puts conditional here) */
+#ifndef PROTO
+#      if __STDC__
+#              define PROTO(type, name, arglist) type name arglist
+#      else
+#              define PROTO(type, name, arglist) type name ()
+#      endif
+#endif
+
+#define BFD_VERSION "1.15"
+
+/* forward declaration */
+typedef struct _bfd bfd;
+
+/* General rules: functions which are boolean return true on success
+   and false on failure (unless they're a predicate).   -- bfd.doc */
+/* I'm sure this is going to break something and someone is going to
+   force me to change it. */
+typedef enum boolean {false, true} boolean;
+
+/* Try to avoid breaking stuff */
+typedef  long int file_ptr;
+
+/* Support for different sizes of target format ints and addresses */
+
+#ifdef HOST_64_BIT
+typedef HOST_64_BIT rawdata_offset;
+typedef HOST_64_BIT bfd_vma;
+typedef HOST_64_BIT bfd_word;
+typedef HOST_64_BIT bfd_offset;
+typedef HOST_64_BIT bfd_size_type;
+typedef HOST_64_BIT symvalue;
+typedef HOST_64_BIT bfd_64_type;
+#define fprintf_vma(s,x) \
+               fprintf(s,"%08x%08x", uint64_typeHIGH(x), uint64_typeLOW(x))
+#define printf_vma(x) \
+               printf(   "%08x%08x", uint64_typeHIGH(x), uint64_typeLOW(x))
+#else
+typedef struct {int a,b;} bfd_64_type;
+typedef unsigned long rawdata_offset;
+typedef unsigned long bfd_vma;
+typedef unsigned long bfd_offset;
+typedef unsigned long bfd_word;
+typedef unsigned long bfd_size;
+typedef unsigned long symvalue;
+typedef unsigned long bfd_size_type;
+#define printf_vma(x)   printf(    "%08lx", x)
+#define fprintf_vma(s,x) fprintf(s, "%08lx", x)
+#endif
+
+typedef unsigned int flagword; /* 32 bits of flags */
+\f
+/** File formats */
+
+typedef enum bfd_format {
+             bfd_unknown = 0,  /* file format is unknown */
+             bfd_object,       /* linker/assember/compiler output */
+             bfd_archive,      /* object archive file */
+             bfd_core,         /* core dump */
+             bfd_type_end}     /* marks the end; don't use it! */
+         bfd_format;
+
+/* Object file flag values */
+#define NO_FLAGS    0
+#define HAS_RELOC   001
+#define EXEC_P      002
+#define HAS_LINENO  004
+#define HAS_DEBUG   010
+#define HAS_SYMS    020
+#define HAS_LOCALS  040
+#define DYNAMIC     0100
+#define WP_TEXT     0200
+#define D_PAGED     0400
+
+\f
+/* symbols and relocation */
+
+typedef unsigned long symindex;
+
+#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
+
+typedef enum bfd_symclass {
+             bfd_symclass_unknown = 0,
+             bfd_symclass_fcommon, /* fortran common symbols */
+             bfd_symclass_global, /* global symbol, what a surprise */
+             bfd_symclass_debugger, /* some debugger symbol */
+             bfd_symclass_undefined /* none known */
+           } symclass;
+
+
+typedef int symtype;           /* Who knows, yet? */
+
+
+/* general purpose part of a symbol;
+   target specific parts will be found in libcoff.h, liba.out.h etc */
+
+
+#define bfd_get_section(x) ((x)->section)
+#define bfd_get_output_section(x) ((x)->section->output_section)
+#define bfd_set_section(x,y) ((x)->section) = (y)
+#define bfd_asymbol_base(x) ((x)->section?((x)->section->vma):0)
+#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + x->value)
+#define bfd_asymbol_name(x) ((x)->name)
+
+/* This is a type pun with struct ranlib on purpose! */
+typedef struct carsym {
+  char *name;
+  file_ptr file_offset;                /* look here to find the file */
+} carsym;                      /* to make these you call a carsymogen */
+
+  
+/* Used in generating armaps.  Perhaps just a forward definition would do? */
+struct orl {                   /* output ranlib */
+  char **name;                 /* symbol name */ 
+  file_ptr pos;                        /* bfd* or file position */
+  int namidx;                  /* index into string table */
+};
+
+\f
+
+/* Linenumber stuff */
+typedef struct lineno_cache_entry {
+  unsigned int line_number;    /* Linenumber from start of function*/  
+  union {
+ struct symbol_cache_entry *sym;               /* Function name */
+    unsigned long offset;      /* Offset into section */
+  } u;
+} alent;
+\f
+/* object and core file sections */
+
+
+#define        align_power(addr, align)        \
+       ( ((addr) + ((1<<(align))-1)) & (-1 << (align)))
+
+typedef struct sec *sec_ptr;
+
+#define bfd_section_name(bfd, ptr) ((ptr)->name)
+#define bfd_section_size(bfd, ptr) ((ptr)->size)
+#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
+#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
+#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags)
+#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
+
+#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (val)), true)
+#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
+#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
+
+typedef struct stat stat_type; 
+\f
+/** Error handling */
+
+typedef enum bfd_error {
+             no_error = 0, system_call_error, invalid_target,
+             wrong_format, invalid_operation, no_memory,
+             no_symbols, no_relocation_info,
+             no_more_archived_files, malformed_archive,
+             symbol_not_found, file_not_recognized,
+             file_ambiguously_recognized, no_contents,
+               bfd_error_nonrepresentable_section,
+             invalid_error_code} bfd_ec;
+
+extern bfd_ec bfd_error;
+
+typedef struct bfd_error_vector {
+  PROTO(void,(* nonrepresentable_section ),(CONST bfd  *CONST abfd,
+                                           CONST char *CONST name));
+} bfd_error_vector_type;
+
+PROTO (char *, bfd_errmsg, ());
+PROTO (void, bfd_perror, (CONST char *message));
+\f
+
+typedef enum bfd_print_symbol
+{ 
+  bfd_print_symbol_name_enum,
+  bfd_print_symbol_type_enum,
+  bfd_print_symbol_all_enum
+} bfd_print_symbol_enum_type;
+    
+\f
+\f
+/* The code that implements targets can initialize a jump table with this
+   macro.  It must name all its routines the same way (a prefix plus
+   the standard routine suffix), or it must #define the routines that
+   are not so named, before calling JUMP_TABLE in the initializer.  */
+
+/* Semi-portable string concatenation in cpp */
+#ifndef CAT
+#ifdef __STDC__
+#define CAT(a,b) a##b
+#else
+#define CAT(a,b) a/**/b
+#endif
+#endif
+
+#define JUMP_TABLE(NAME)\
+CAT(NAME,_core_file_failing_command),\
+CAT(NAME,_core_file_failing_signal),\
+CAT(NAME,_core_file_matches_executable_p),\
+CAT(NAME,_slurp_armap),\
+CAT(NAME,_slurp_extended_name_table),\
+CAT(NAME,_truncate_arname),\
+CAT(NAME,_write_armap),\
+CAT(NAME,_close_and_cleanup),  \
+CAT(NAME,_set_section_contents),\
+CAT(NAME,_get_section_contents),\
+CAT(NAME,_new_section_hook),\
+CAT(NAME,_get_symtab_upper_bound),\
+CAT(NAME,_get_symtab),\
+CAT(NAME,_get_reloc_upper_bound),\
+CAT(NAME,_canonicalize_reloc),\
+CAT(NAME,_make_empty_symbol),\
+CAT(NAME,_print_symbol),\
+CAT(NAME,_get_lineno),\
+CAT(NAME,_set_arch_mach),\
+CAT(NAME,_openr_next_archived_file),\
+CAT(NAME,_find_nearest_line),\
+CAT(NAME,_generic_stat_arch_elt),\
+CAT(NAME,_sizeof_headers),\
+CAT(NAME,_bfd_debug_info_start),\
+CAT(NAME,_bfd_debug_info_end),\
+CAT(NAME,_bfd_debug_info_accumulate)
+
+#define COFF_SWAP_TABLE coff_swap_aux_in, coff_swap_sym_in, coff_swap_lineno_in,
+\f
+/* User program access to BFD facilities */
+
+extern CONST short _bfd_host_big_endian;
+#define HOST_BYTE_ORDER_BIG_P  (*(char *)&_bfd_host_big_endian)
+
+/* The bfd itself */
+
+/* Cast from const char * to char * so that caller can assign to
+   a char * without a warning.  */
+#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
+#define bfd_get_format(abfd) ((abfd)->format)
+#define bfd_get_target(abfd) ((abfd)->xvec->name)
+#define bfd_get_file_flags(abfd) ((abfd)->flags)
+#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
+#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
+#define bfd_my_archive(abfd) ((abfd)->my_archive);
+#define bfd_has_map(abfd) ((abfd)->has_armap)
+#define bfd_header_twiddle_required(abfd) \
+        ((((abfd)->xvec->header_byteorder_big_p)               \
+         != (boolean)HOST_BYTE_ORDER_BIG_P) ? true:false)
+
+#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
+#define bfd_usrdata(abfd) ((abfd)->usrdata)
+
+#define bfd_get_start_address(abfd) ((abfd)->start_address)
+#define bfd_get_symcount(abfd) ((abfd)->symcount)
+#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
+#define bfd_count_sections(abfd) ((abfd)->section_count)
+#define bfd_get_architecture(abfd) ((abfd)->obj_arch)
+#define bfd_get_machine(abfd) ((abfd)->obj_machine)
+
+
+
+#define BYTE_SIZE 1
+#define SHORT_SIZE 2
+#define LONG_SIZE 4
+
+
+
+/*THE FOLLOWING IS EXTRACTED FROM THE SOURCE */
+
+
+/*:init.c*/
+
+/*:opncls.c*/
+
+
+/*:libbfd.c*/
+
+/*:section.c*/
+
+
+/*:archures.c*/
+
+/*:howto.c*/
+/*:reloc.c*/
+
+/*:syms.c*/
+
+/*:bfd.c*/
+
+/*:archive.c*/
+
+/*:core.c*/
+
+/*:targets.c*/
+
+/*:format.c*/
+
+#endif
+
+
+
+
+
index 09c011f4dbe1c8cf5b08928a1499a13c780449b7..169bdc814b6a30a93a27e7eede370eb39ed1e6b9 100644 (file)
@@ -104,7 +104,7 @@ asection *input_section;
                        value -= reloc_entry->address;
                        if (value > 0x3ffff) {
                                fprintf(stderr,"Relocation problem : ");
-                               fprintf(stderr,"Jmp/call too far; to %d from %s\n",
+                               fprintf(stderr,"Jmp/call too far; to %s from %s\n",
                                        symbol_in->name,abfd->filename); 
                                return(bfd_reloc_outofrange);
                        }
index 175548bfa71ef8c70ba0837a06527a6afe8c8ae4..2922578d2b5a55e9a00f2a428522793dd55bfa9b 100755 (executable)
@@ -323,7 +323,7 @@ for host in ${hosts} ; do
        host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
        host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
        host=${host_cpu}-${host_vendor}-${host_os}
-       host_makefile_frag=config/h-${host}
+       host_makefile_frag=config/hmake-${host}
 
 #### configure.in per-host parts come in here.
 
@@ -335,6 +335,7 @@ else
        mips)
                case "${host_vendor}" in
                dec)    bfd_host=dec3100 ;;
+               sgi)    bfd_host=irix3 ;;
                esac
                ;;
        m88k)
@@ -376,8 +377,15 @@ else
                esac
                ;;
 
-       rtpc)   bfd_host=rtbsd ;;
-       tahoe | vax)    bfd_host=${host_cpu} ;;
+       rtpc)   bfd_host=rtbsd
+               ;;
+
+       a29k)   bfd_host=ultra3
+               ;;
+
+       tahoe | vax)
+               bfd_host=${host_cpu}
+               ;;
        esac
 fi
 
@@ -397,7 +405,7 @@ host_makefile_frag=config/h-${bfd_host}
                target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
                target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
                target=${target_cpu}-${target_vendor}-${target_os}
-               target_makefile_frag=config/t-${target}
+               target_makefile_frag=config/tmake-${target}
 
 #### configure.in per-target parts come in here.
 
@@ -432,9 +440,30 @@ hp)
                ;;
        esac
        ;;
-none)
+sgi)
+       case "${target_cpu}" in
+       mips)
+               bfd_target=irix3 ;;
+       esac
+       ;;
+
+hitachi)
+       case "${target_cpu}" in
+       h8300) bfd_target=h8300-ieee ;;
+       *) echo "bad hitachi cpu" ;;
+       esac
+       ;;
+
+
+none|nyu)
        case "${target_cpu}" in
        i386) bfd_target=i386-coff ;;
+       a29k) case "${target_os}" in
+               aout) bfd_target=a29k-aout ;;
+               coff) bfd_target=a29k-coff ;;
+               sym1) bfd_target=a29k-coff ;;
+              esac
+              ;;
        esac
        ;;
 *)
@@ -711,19 +740,102 @@ exit 0
 
 #
 # $Log$
-# Revision 1.25  1991/09/03 20:48:23  steve
-# *** empty log message ***
-#
-# Revision 1.24  1991/08/23  20:55:21  gnu
-#      * configure.in:  Tix typo.
-#         * ecoff.c:  If compiling for DEC3100, use trad_unix core files,
-#         else dummy out the core file support.
-#         * trad-core.c (trad_unix_core_file_p):  If HOST_DATA_START_ADDR is
-#         specified, use it to locate the data section.
-#         * coffcode.h (coff_write_symbols):  Declare buffer as bfd_bytes
-#         rather than as chars (lint).
-#
-# Revision 1.23  1991/08/23  04:48:43  rich
+# Revision 1.28  1991/10/01 03:55:37  steve
+# Insert the incidentals and things I forgot to ci last time, same log message:
+#
+# Mon Sep 30 15:13:46 1991  Steve Chamberlain  (steve at cygnus.com)
+#
+#      * cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c,
+#      cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These
+#      files will eventually contain processor specific bits for bfd,
+#      like strange relocation information and dis/assembly.  So far only
+#      the H8 has been even partially done.  This work also ties in with
+#      the change in handling architectures.
+#
+#      * amdcoff.c: (a29k_reloc) fix error message.
+#
+#      * aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to
+#      discover the architecture of the bfd. (sunos4_callback) calls the
+#      function bfd_set_arch_mach rather than stuffing stuff directly
+#      into the bfd. (sunos4_write_object_contents), changed names of
+#      accessor functions.
+#
+#      * aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to
+#      setup the environment.
+#
+#      * archive.c: (bfd_slurp_coff_armap) coff archives always have the
+#      headers in big endian format, regardless of the endianess of the
+#      host or target.
+#
+#      * archures.c: totally changed. Now an architecture is represented
+#      with a pointer to an info structure rather than an enumerated type
+#      and a long. The old info is available as two elements in the
+#      structure.  Future enhancements to architecure support will
+#      involve pointers to methods being placed into the info structure.
+#
+#      * bfd.c: changed the definition of the bfd structure for the new
+#      architecture stuff.
+#
+#      * bout.c: (b_out_set_arch_mach) changed to use the new
+#      architecture mechanism.
+#
+#      * coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use
+#      the new architecture mechanism.
+#
+#      * configure.in: added h8 stuff.
+#
+#      * ieee.c: too many changes to note.  Now ieee files written with
+#      bfd gas and ld can be read by gld and ieee only linkers and
+#      simulators.
+#
+#      * libbfd.c, libbfd.h: changed prototype of bfd_write.
+#
+#      * newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather
+#      than fixing the structure directly.
+#
+#      * oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather
+#      than fixing the structure directly.
+#
+#      * opncls.c: (new_bfd) makes sure that bfd_init has been called
+#      before opening a bfd.
+#
+#      * srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach
+#      rather than fixing the structure directly.
+#
+#      * targets.c: (target_vector) now by defining SELECT_VECS (perhaps
+#      in the t/hmake file) a user can select which backends they want
+#      linked with bfd without changing the source.
+#
+#      * init.c: new, looks after initializing modules.
+#
+#      * howto.c: for future use, will allow an application to work out
+#      what cookie to use as a handle on a relcoatio howto.
+#
+# Revision 1.27  1991/09/17  00:36:44  rich
+# Updated from configure.in.
+#
+# Revision 1.26  1991/09/13  02:19:42  gnu
+# Propagate
+#
+# Revision 1.37  1991/09/12  00:33:18  rich
+# Add gdbm.
+#
+# Revision 1.36  1991/08/31  03:54:36  rich
+# Welcome emacs to the mess.
+#
+# Revision 1.35  1991/08/26  04:29:31  rich
+# Welcome cvs to the big time.
+#
+# Revision 1.34  1991/08/25  23:40:23  rich
+# rcs enters the soup.
+#
+# Revision 1.33  1991/08/25  21:48:38  rich
+# Adding diff to the fray.
+#
+# Revision 1.32  1991/08/25  20:18:20  rich
+# Adding grep to the fray.
+#
+# Revision 1.31  1991/08/23  04:50:57  rich
 # Minor config polish.
 #
 # Revision 1.22  1991/08/23  03:31:43  rich
index f7b29121b92edbe36ae435aa0887f3e66c472849..0c3ad59306dbf51806eb3950b651739db4e4adfe 100644 (file)
@@ -1,3 +1,4 @@
+
 /* libbfd.h -- Declarations used by bfd library *implementation*.
    (This include file is not for users of the library.)
    Copyright (C) 1990-1991 Free Software Foundation, Inc.
@@ -72,7 +73,7 @@ PROTO(PTR, bfd_alloc_finish,(bfd *abfd));
 
 
 PROTO (bfd_size_type, bfd_read, (PTR ptr, bfd_size_type size, bfd_size_type nitems, bfd *abfd));
-PROTO (bfd_size_type, bfd_write, (PTR ptr, bfd_size_type size, bfd_size_type nitems, bfd *abfd));
+PROTO (bfd_size_type, bfd_write, (CONST PTR ptr, bfd_size_type size, bfd_size_type nitems, bfd *abfd));
 
 
 
@@ -179,22 +180,32 @@ extern bfd *bfd_last_cache;
 
 /* THE FOLLOWING IS EXTRACTED FROM THE SOURCE*/
 
-/* FROM libbfd.c*/
-/* ------------------------------START FROM libbfd.c
+/*:init.c*/
+/* bfd_check_init
+
+This routine is called before any other bfd function using initialized
+data is used to ensure that the structures have been initialized.
+Soon this function will go away, and the bfd library will assume that
+bfd_init has been called.
+*/
+
+ void EXFUN(bfd_check_init,(void));
+
+/*
+*/
 
-*i bfd_log2
+/*:libbfd.c*/
+/* *i bfd_log2
 Return the log base 2 of the value supplied, rounded up. eg an arg
 of 1025 would return 11.
 */
  PROTO(bfd_vma, bfd_log2,(bfd_vma x));
 
 /*
+*/
 
- --------------------------------END FROM libbfd.c*/
-
-/* FROM cache.c*/
-/* ------------------------------START FROM cache.c
- BFD_CACHE_MAX_OPEN
+/*:cache.c*/
+/* BFD_CACHE_MAX_OPEN
 The maxiumum number of files which the cache will keep open at one
 time.
 */
@@ -258,8 +269,76 @@ one first, to avoid running out of file descriptors.
  PROTO(FILE *, bfd_cache_lookup_worker, (bfd *));
 
 /*
+*/
+
+
+/*:reloc.c*/
+
+/*:cpu-h8300.c*/
+
+/*:cpu-i960.c*/
+
+/*:cpu-empty.c*/
+
+/*:howto.c*/
+
+/*:archures.c*/
+/* bfd_default_arch_struct
+
+What bfds are seeded with 
+*/
+
+extern bfd_arch_info_struct_type bfd_default_arch_struct;
+
+/*
+ bfd_default_set_arch_mach
+
+Set the architecture and machine type in a bfd. This finds the correct
+pointer to structure and inserts it into the arch_info pointer. 
+*/
+
+  boolean EXFUN(bfd_default_set_arch_mach,(bfd *abfd,
+          enum bfd_architecture arch,
+        unsigned long mach));
 
- --------------------------------END FROM cache.c*/
+/*
+
+This routine initializes the architecture dispatch table by calling
+all installed architecture packages and getting them to poke around.
+*/
+
+ PROTO(void, bfd_arch_init,(void));
+
+/*
+
+ bfd_arch_linkin
+
+Link the provided arch info structure into the list
+*/
+
+ void EXFUN(bfd_arch_linkin,(bfd_arch_info_struct_type *));
+
+/*
+
+ bfd_default_compatible
+
+The default function for testing for compatibility 
+*/
+
+ CONST bfd_arch_info_struct_type *EXFUN(bfd_default_compatible,
+     (CONST bfd_arch_info_struct_type *a,
+     CONST bfd_arch_info_struct_type *b));
+
+/*
+
+ bfd_default_scan
+The default function for working out whether this is an architecture
+hit and a machine hit 
+*/
+
+ boolean EXFUN(bfd_default_scan,(CONST struct bfd_arch_info_struct *, CONST char *));
+
+/*
+*/
 
-/* FROM reloc.c*/