* aout-target.h, aoutf1.h, trad-core.c, coffcode.h, libaout.h:
authorJohn Gilmore <gnu@cygnus>
Sat, 28 Nov 1992 13:00:18 +0000 (13:00 +0000)
committerJohn Gilmore <gnu@cygnus>
Sat, 28 Nov 1992 13:00:18 +0000 (13:00 +0000)
Eliminate all PROTO calls, replace with PARAMS for readability.

* aoutx.h:  Add type to callback parameter.
* coff-mips.c:  Don't call trad-core.h, not needed.
* trad-core.c:  Incorporate trad-core.h declarations.  Fix comments.
* trad-core.h:  Eliminate, unused.

bfd/ChangeLog
bfd/aout-target.h
bfd/aoutx.h
bfd/coff-mips.c
bfd/coffcode.h
bfd/libaout.h
bfd/trad-core.c

index 0146f684a2fe3bd26025c5f089f3348f3da86932..b1c51c57bdef86945cad6fed491dcae2eb035238 100644 (file)
@@ -1,8 +1,14 @@
 Sat Nov 28 04:01:21 1992  John Gilmore  (gnu@cygnus.com)
 
-       * libbfd-in.h, bfd-in.h:  Eliminate all PROTO calls, replace with
+       * aout-target.h, aoutf1.h, trad-core.c, coffcode.h, libaout.h,
+       libbfd-in.h, bfd-in.h: Eliminate all PROTO calls, replace with
        PARAMS for readability.
 
+       * aoutx.h:  Add type to callback parameter.
+       * coff-mips.c:  Don't call trad-core.h, not needed.
+       * trad-core.c:  Incorporate trad-core.h declarations.  Fix comments.
+       * trad-core.h:  Eliminate, unused.
+
 Wed Nov 18 13:16:17 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
 
        * format.c (bfd_check_format): if default target isn't found
index 9b8273a7c9e2ac6dbe8ad99eee904c9cf9cc2a77..8cf7429b57fd2037425829d47a26e5e121f41a37 100644 (file)
@@ -194,6 +194,7 @@ static CONST struct aout_backend_data MY(backend_data) = {
   0,                           /* text incl header */
   0,                           /* text vma? */
   MY_set_sizes,
+  0,                           /* exec header is counted */
 };
 #define MY_backend_data &MY(backend_data)
 #endif
@@ -240,7 +241,8 @@ static CONST struct aout_backend_data MY(backend_data) = {
 #define MY_bfd_debug_info_end          bfd_void
 #endif
 #ifndef MY_bfd_debug_info_accumulate
-#define MY_bfd_debug_info_accumulate   (PROTO(void,(*),(bfd*, struct sec *))) bfd_void
+#define MY_bfd_debug_info_accumulate   \
+                       (void (*) PARAMS ((bfd*, struct sec *))) bfd_void
 #endif
 
 #ifndef MY_core_file_failing_command
index a874757a9a9aa9b2717225dbfe474cce152cc326..909c5b281dcb6962949fdcafb1a3845af6b80bb2 100644 (file)
@@ -1,5 +1,5 @@
-/* BFD semi-generic back-end for a.out binaries
-   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+/* BFD semi-generic back-end for a.out binaries.
+   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -339,7 +339,7 @@ bfd_target *
 DEFUN(NAME(aout,some_aout_object_p),(abfd, execp, callback_to_real_object_p),
       bfd *abfd AND
       struct internal_exec *execp AND
-      bfd_target *(*callback_to_real_object_p) ())
+      bfd_target *(*callback_to_real_object_p) (bfd *))
 {
   struct aout_data_struct *rawptr, *oldrawptr;
   bfd_target *result;
@@ -484,9 +484,11 @@ DEFUN(NAME(aout,some_aout_object_p),(abfd, execp, callback_to_real_object_p),
     abfd->flags |= EXEC_P;
   if (result)
     {
+#if 0 /* These should be set correctly anyways.  */
       abfd->sections = obj_textsec (abfd);
       obj_textsec (abfd)->next = obj_datasec (abfd);
       obj_datasec (abfd)->next = obj_bsssec (abfd);
+#endif
     }
   else
     {
index e6fadb2800c320b6116d90ef622059d9fa2d6cfd..ee63e0729bf882056d2d64a33ba47c1aec4f508a 100644 (file)
@@ -1,5 +1,5 @@
-/* MIPS Extended-Coff back-end for BFD.
-   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+/* BFD back-end for MIPS Extended-Coff files.
+   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
    Written by Per Bothner.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -24,7 +24,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "coff/mips.h"
 #include "coff/internal.h"
 #include "libcoff.h"           /* to allow easier abstraction-breaking */
-#include "trad-core.h"
 
 #define BADMAG(x) ECOFFBADMAG(x)
 
index 29b83ff4bd8db48ff98fa253b7cb82516f6ebe23..3e11a86aafd4ef8b530b25a462e9c41f472df877 100644 (file)
@@ -672,7 +672,7 @@ DEFUN(coff_swap_aux_in,(abfd, ext1, type, class, in1),
          in->x_sym.x_fcnary.x_ary.x_dimen[3] = bfd_h_get_16(abfd, (bfd_byte *) ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
 #endif
        }
-      if (class == C_BLOCK || ISFCN(type) || ISTAG(type)) {
+      if (class == C_BLOCK || ISFCN(type) || ISTAG(class)) {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR(abfd, ext);
        in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX(abfd, ext);
       }
@@ -749,7 +749,7 @@ DEFUN(coff_swap_aux_out,(abfd, inp, type, class, extp),
     bfd_h_put_16(abfd, in->x_sym.x_tvndx , (bfd_byte *) ext->x_sym.x_tvndx);
 #endif
 
-    if (class == C_BLOCK || ISFCN(type) || ISTAG(type)) {
+    if (class == C_BLOCK || ISFCN(type) || ISTAG(class)) {
       PUT_FCN_LNNOPTR(abfd,  in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext);
       PUT_FCN_ENDNDX(abfd,  in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
     }
@@ -3876,7 +3876,7 @@ DEFUN(get_value,(reloc, seclet),
   
   
   /* Add the value contained in the relocation */
-  value += (short)((reloc->addend) & 0xffff);
+  value += reloc->addend;
   
   return value;
 }
@@ -4234,9 +4234,9 @@ DEFUN(bfd_coff_get_relocated_section_contents,(in_abfd, seclet, data),
 #define        coff_get_section_contents       bfd_generic_get_section_contents
 #define        coff_close_and_cleanup          bfd_generic_close_and_cleanup
 
-#define coff_bfd_debug_info_start              bfd_void
+#define coff_bfd_debug_info_start      bfd_void
 #define coff_bfd_debug_info_end                bfd_void
-#define coff_bfd_debug_info_accumulate (PROTO(void,(*),(bfd*, struct sec *))) bfd_void
+#define coff_bfd_debug_info_accumulate \
+                       (void (*) PARAMS ((bfd *, struct sec *))) bfd_void
 #define coff_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define coff_bfd_relax_section bfd_generic_relax_section
-
+#define coff_bfd_relax_section         bfd_generic_relax_section
index 52b47ed299d8ea7776c552f9123c1c4806c8c80b..283891640e39607f8d849fa3727f44f414b21fa6 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end data structures for a.out (and similar) files.
-   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -216,51 +216,98 @@ struct  aout_data_struct {
 
 /* Prototype declarations for functions defined in aoutx.h  */
 
-PROTO (boolean, NAME(aout,squirt_out_relocs),(bfd *abfd, asection *section));
+boolean
+NAME(aout,squirt_out_relocs) PARAMS ((bfd *abfd, asection *section));
 
-PROTO (bfd_target *, NAME(aout,some_aout_object_p), (bfd *abfd,
-                                         struct internal_exec *execp,
-                                         bfd_target *(*callback)()));
-PROTO (boolean,        NAME(aout,mkobject), (bfd *abfd));
-PROTO (enum machine_type, NAME(aout,machine_type), (enum bfd_architecture arch,
-                                               unsigned long machine));
-PROTO (boolean,        NAME(aout,set_arch_mach), (bfd *abfd, enum bfd_architecture arch,
-                                               unsigned long machine));
+bfd_target *
+NAME(aout,some_aout_object_p) PARAMS ((bfd *abfd,
+                       struct internal_exec *execp,
+                       bfd_target * (*callback)(bfd *)));
 
-PROTO (boolean,        NAME(aout,new_section_hook), (bfd *abfd, asection *newsect));
-PROTO (boolean, NAME(aout,set_section_contents), (bfd *abfd, sec_ptr section,
+boolean
+NAME(aout,mkobject) PARAMS ((bfd *abfd));
+
+enum machine_type
+NAME(aout,machine_type) PARAMS ((enum bfd_architecture arch,
+                                unsigned long machine));
+
+boolean
+NAME(aout,set_arch_mach) PARAMS ((bfd *abfd, enum bfd_architecture arch,
+                                 unsigned long machine));
+
+boolean
+NAME(aout,new_section_hook) PARAMS ((bfd *abfd, asection *newsect));
+
+boolean
+NAME(aout,set_section_contents) PARAMS ((bfd *abfd, sec_ptr section,
                         PTR location, file_ptr offset, bfd_size_type count));
 
-PROTO (asymbol *,NAME(aout,make_empty_symbol), (bfd *abfd));
-PROTO (boolean,        NAME(aout,slurp_symbol_table), (bfd *abfd));
-PROTO (void,   NAME(aout,write_syms), (bfd *abfd));
-PROTO (void,   NAME(aout,reclaim_symbol_table), (bfd *abfd));
-PROTO (unsigned int, NAME(aout,get_symtab_upper_bound), (bfd *abfd));
-PROTO (unsigned int, NAME(aout,get_symtab), (bfd *abfd, asymbol **location));
-PROTO (boolean,        NAME(aout,slurp_reloc_table), (bfd *abfd, sec_ptr asect,
-                                        asymbol **symbols));
-PROTO (unsigned int, NAME(aout,canonicalize_reloc), (bfd *abfd, sec_ptr section,
-                                        arelent **relptr, asymbol **symbols));
-PROTO (unsigned int, NAME(aout,get_reloc_upper_bound), (bfd *abfd, sec_ptr asect));
-PROTO (void,   NAME(aout,reclaim_reloc), (bfd *ignore_abfd, sec_ptr ignore));
-PROTO (alent *,        NAME(aout,get_lineno), (bfd *ignore_abfd, asymbol *ignore_symbol));
-PROTO (void,   NAME(aout,print_symbol), (bfd *ignore_abfd, PTR file,
+asymbol *
+NAME(aout,make_empty_symbol) PARAMS ((bfd *abfd));
+
+boolean
+NAME(aout,slurp_symbol_table) PARAMS ((bfd *abfd));
+
+void
+NAME(aout,write_syms) PARAMS ((bfd *abfd));
+
+void
+NAME(aout,reclaim_symbol_table) PARAMS ((bfd *abfd));
+
+unsigned int
+NAME(aout,get_symtab_upper_bound) PARAMS ((bfd *abfd));
+
+unsigned int
+NAME(aout,get_symtab) PARAMS ((bfd *abfd, asymbol **location));
+
+boolean
+NAME(aout,slurp_reloc_table) PARAMS ((bfd *abfd, sec_ptr asect,
+                                     asymbol **symbols));
+
+unsigned int
+NAME(aout,canonicalize_reloc) PARAMS ((bfd *abfd, sec_ptr section,
+                                      arelent **relptr, asymbol **symbols));
+
+unsigned int
+NAME(aout,get_reloc_upper_bound) PARAMS ((bfd *abfd, sec_ptr asect));
+
+void
+NAME(aout,reclaim_reloc) PARAMS ((bfd *ignore_abfd, sec_ptr ignore));
+
+alent *
+NAME(aout,get_lineno) PARAMS ((bfd *ignore_abfd, asymbol *ignore_symbol));
+
+void
+NAME(aout,print_symbol) PARAMS ((bfd *ignore_abfd, PTR file,
                            asymbol *symbol, bfd_print_symbol_type how));
-PROTO (boolean,        NAME(aout,close_and_cleanup), (bfd *abfd));
-PROTO (boolean,        NAME(aout,find_nearest_line), (bfd *abfd, asection *section,
+
+boolean
+NAME(aout,close_and_cleanup) PARAMS ((bfd *abfd));
+
+boolean
+NAME(aout,find_nearest_line) PARAMS ((bfd *abfd, asection *section,
       asymbol **symbols, bfd_vma offset, CONST char **filename_ptr,
       CONST char **functionname_ptr, unsigned int *line_ptr));
-PROTO (int,    NAME(aout,sizeof_headers), (bfd *abfd, boolean exec));
 
-PROTO (void,   NAME(aout,swap_exec_header_in), (bfd *abfd,
-                        struct external_exec *raw_bytes, struct internal_exec *execp));
+int
+NAME(aout,sizeof_headers) PARAMS ((bfd *abfd, boolean exec));
+
+boolean
+NAME(aout,adjust_sizes_and_vmas) PARAMS ((bfd *abfd,
+       bfd_size_type *text_size, file_ptr *text_end));
+
+void
+NAME(aout,swap_exec_header_in) PARAMS ((bfd *abfd,
+       struct external_exec *raw_bytes, struct internal_exec *execp));
 
-PROTO (void,   NAME(aout,swap_exec_header_out),(bfd *abfd, struct internal_exec *execp,
-                        struct external_exec *raw_bytes));
+void
+NAME(aout,swap_exec_header_out) PARAMS ((bfd *abfd,
+       struct internal_exec *execp, struct external_exec *raw_bytes));
 
 /* Prototypes for functions in stab-syms.c. */
 
-PROTO(char *, aout_stab_name, (int code));
+char *
+aout_stab_name PARAMS ((int code));
 
 /* A.out uses the generic versions of these routines... */
 
index cd64383f07b6441f3952eab1b187ee2dafc8f0b8..990be3534ea2fe4952aef3d65efb40e3b1b01ebe 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back end for traditional Unix core files (U-area and raw sections)
-   Copyright (C) 1988, 1989, 1991 Free Software Foundation, Inc.
+   Copyright 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
    Written by John Gilmore of Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -36,26 +36,32 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <sys/param.h>
 #include <sys/dir.h>
 #include <signal.h>
-#include <machine/reg.h>
 
 #include <sys/user.h>          /* After a.out.h  */
 #include <sys/file.h>
 
 #include <errno.h>
 
-/* These are stored in the bfd's tdata */
-struct core_data {
-  struct user *upage;             /* core file header */
-  asection *data_section;
-  asection *stack_section;
-  asection *reg_section;
-};
+  struct trad_core_struct 
+    {
+      asection *data_section;
+      asection *stack_section;
+      asection *reg_section;
+      struct user u;
+    } *rawptr;
+
+#define core_upage(bfd) (&((bfd)->tdata.trad_core_data->u))
+#define core_datasec(bfd) ((bfd)->tdata.trad_core_data->data_section)
+#define core_stacksec(bfd) ((bfd)->tdata.trad_core_data->stack_section)
+#define core_regsec(bfd) ((bfd)->tdata.trad_core_data->reg_section)
+
+/* forward declarations */
 
-#define core_hdr(bfd) (((struct core_data *) (bfd->tdata))->hdr)
-#define core_upage(bfd) (((struct core_data *) ((bfd)->tdata))->upage)
-#define core_datasec(bfd) (((struct core_data *) ((bfd)->tdata))->data_section)
-#define core_stacksec(bfd) (((struct core_data*)((bfd)->tdata))->stack_section)
-#define core_regsec(bfd) (((struct core_data *) ((bfd)->tdata))->reg_section)
+bfd_target *   trad_unix_core_file_p PARAMS ((bfd *abfd));
+char *         trad_unix_core_file_failing_command PARAMS ((bfd *abfd));
+int            trad_unix_core_file_failing_signal PARAMS ((bfd *abfd));
+boolean                trad_unix_core_file_matches_executable_p
+                        PARAMS ((bfd *core_bfd, bfd *exec_bfd));
 
 /* Handle 4.2-style (and perhaps also sysV-style) core dump file.  */
 
@@ -63,16 +69,10 @@ struct core_data {
 bfd_target *
 trad_unix_core_file_p (abfd)
      bfd *abfd;
+
 {
   int val;
   struct user u;
-  unsigned int reg_offset, fp_reg_offset;
-  /* This struct is just for allocating two things with one zalloc, so
-     they will be freed together, without violating alignment constraints. */
-  struct core_user {
-       struct core_data        coredata;
-       struct user             u;
-  } *rawptr;
 
   val = bfd_read ((void *)&u, 1, sizeof u, abfd);
   if (val != sizeof u)
@@ -89,34 +89,35 @@ trad_unix_core_file_p (abfd)
 
   /* Allocate both the upage and the struct core_data at once, so
      a single free() will free them both.  */
-  rawptr = (struct core_user *)bfd_zalloc (abfd, sizeof (struct core_user));
+  rawptr = (struct trad_core_struct *)
+               bfd_zalloc (abfd, sizeof (struct trad_core_struct));
   if (rawptr == NULL) {
     bfd_error = no_memory;
     return 0;
   }
   
-  set_tdata (abfd, &rawptr->coredata);
-  core_upage (abfd) = &rawptr->u;
-  *core_upage (abfd) = u;              /* Save that upage! */
+  abfd->tdata.trad_core_data = rawptr;
+
+  rawptr->u = u; /*Copy the uarea into the tdata part of the bfd */
 
   /* Create the sections.  This is raunchy, but bfd_close wants to free
      them separately.  */
-  core_stacksec (abfd) = (asection *) zalloc (sizeof (asection));
+
+  core_stacksec(abfd) = (asection *) zalloc (sizeof (asection));
   if (core_stacksec (abfd) == NULL) {
-loser:
+  loser:
     bfd_error = no_memory;
     free ((void *)rawptr);
     return 0;
   }
   core_datasec (abfd) = (asection *) zalloc (sizeof (asection));
   if (core_datasec (abfd) == NULL) {
-loser1:
+  loser1:
     free ((void *)core_stacksec (abfd));
     goto loser;
   }
   core_regsec (abfd) = (asection *) zalloc (sizeof (asection));
   if (core_regsec (abfd) == NULL) {
-loser2:
     free ((void *)core_datasec (abfd));
     goto loser1;
   }
@@ -129,9 +130,9 @@ loser2:
   core_datasec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
   core_regsec (abfd)->flags = SEC_ALLOC + SEC_HAS_CONTENTS;
 
-  core_datasec (abfd)->size =  NBPG * u.u_dsize;
-  core_stacksec (abfd)->size = NBPG * u.u_ssize;
-  core_regsec (abfd)->size = NBPG * UPAGES;  /* Larger than sizeof struct u */
+  core_datasec (abfd)->_raw_size =  NBPG * u.u_dsize;
+  core_stacksec (abfd)->_raw_size = NBPG * u.u_ssize;
+  core_regsec (abfd)->_raw_size = NBPG * UPAGES; /* Larger than sizeof struct u */
 
   /* What a hack... we'd like to steal it from the exec file,
      since the upage does not seem to provide it.  FIXME.  */
@@ -148,7 +149,7 @@ loser2:
      from *u_ar0.  The other is that u_ar0 is sometimes an absolute address
      in kernel memory, and on other systems it is an offset from the beginning
      of the `struct user'.
-
+     
      As a practical matter, we don't know where the registers actually are,
      so we have to pass the whole area to GDB.  We encode the value of u_ar0
      by setting the .regs section up so that its virtual memory address
@@ -159,7 +160,7 @@ loser2:
 
   core_datasec (abfd)->filepos = NBPG * UPAGES;
   core_stacksec (abfd)->filepos = (NBPG * UPAGES) + NBPG * u.u_dsize;
-  core_regsec (abfd)->filepos = 0;     /* Register segment is the upage */
+  core_regsec (abfd)->filepos = 0; /* Register segment is the upage */
 
   /* Align to word at least */
   core_stacksec (abfd)->alignment_power = 2;
@@ -178,9 +179,12 @@ char *
 trad_unix_core_file_failing_command (abfd)
      bfd *abfd;
 {
-  if (*core_upage (abfd)->u_comm)
-    return core_upage (abfd)->u_comm;
+#ifndef NO_CORE_COMMAND
+  char *com = abfd->tdata.trad_core_data->u.u_comm;
+  if (*com)
+    return com;
   else
+#endif
     return 0;
 }
 
@@ -205,55 +209,56 @@ trad_unix_core_file_matches_executable_p  (core_bfd, exec_bfd)
 #define        trad_unix_generic_stat_arch_elt         bfd_generic_stat_arch_elt
 #define        trad_unix_slurp_armap                   bfd_false
 #define        trad_unix_slurp_extended_name_table     bfd_true
-#define        trad_unix_write_armap                   (PROTO (boolean, (*),   \
-     (bfd *arch, unsigned int elength, struct orl *map, int orl_count, \
-      int stridx))) bfd_false
+#define        trad_unix_write_armap                   (boolean (*) PARAMS     \
+    ((bfd *arch, unsigned int elength, struct orl *map, \
+      unsigned int orl_count, int stridx))) bfd_false
 #define        trad_unix_truncate_arname               bfd_dont_truncate_arname
 #define        aout_32_openr_next_archived_file        bfd_generic_openr_next_archived_file
 
 #define        trad_unix_close_and_cleanup             bfd_generic_close_and_cleanup
-#define        trad_unix_set_section_contents          (PROTO(boolean, (*),    \
-         (bfd *abfd, asection *section, PTR data, file_ptr offset,     \
-         bfd_size_type count))) bfd_false
+#define        trad_unix_set_section_contents          (boolean (*) PARAMS     \
+        ((bfd *abfd, asection *section, PTR data, file_ptr offset,     \
+        bfd_size_type count))) bfd_false
 #define        trad_unix_get_section_contents          bfd_generic_get_section_contents
-#define        trad_unix_new_section_hook              (PROTO (boolean, (*),   \
-       (bfd *, sec_ptr))) bfd_true
+#define        trad_unix_new_section_hook              (boolean (*) PARAMS     \
+       ((bfd *, sec_ptr))) bfd_true
 #define        trad_unix_get_symtab_upper_bound        bfd_0u
-#define        trad_unix_get_symtab                    (PROTO (unsigned int, (*), \
-        (bfd *, struct symbol_cache_entry **))) bfd_0u
-#define        trad_unix_get_reloc_upper_bound         (PROTO (unsigned int, (*), \
-       (bfd *, sec_ptr))) bfd_0u
-#define        trad_unix_canonicalize_reloc            (PROTO (unsigned int, (*), \
-       (bfd *, sec_ptr, arelent **, struct symbol_cache_entry**))) bfd_0u
-#define        trad_unix_make_empty_symbol             (PROTO (                \
-       struct symbol_cache_entry *, (*), (bfd *))) bfd_false
-#define        trad_unix_print_symbol                  (PROTO (void, (*),      \
-       (bfd *, PTR, struct symbol_cache_entry  *,                      \
-        bfd_print_symbol_type))) bfd_false
-#define        trad_unix_get_lineno                    (PROTO (alent *, (*),   \
-       (bfd *, struct symbol_cache_entry *))) bfd_nullvoidptr
-#define        trad_unix_set_arch_mach                 (PROTO (boolean, (*),   \
+#define        trad_unix_get_symtab                    (unsigned int (*) PARAMS \
+        ((bfd *, struct symbol_cache_entry **))) bfd_0u
+#define        trad_unix_get_reloc_upper_bound         (unsigned int (*) PARAMS \
+       ((bfd *, sec_ptr))) bfd_0u
+#define        trad_unix_canonicalize_reloc            (unsigned int (*) PARAMS \
+       ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry**))) bfd_0u
+#define        trad_unix_make_empty_symbol             (struct symbol_cache_entry * \
+       (*) ((bfd *))) bfd_false
+#define        trad_unix_print_symbol                  (void (*) PARAMS        \
+       ((bfd *, PTR, struct symbol_cache_entry  *,                     \
+       bfd_print_symbol_type))) bfd_false
+#define        trad_unix_get_lineno                    (alent * (*) PARAMS     \
+       ((bfd *, struct symbol_cache_entry *))) bfd_nullvoidptr
+#define        trad_unix_set_arch_mach                 (boolean (*) PARAMS     \
        (bfd *, enum bfd_architecture, unsigned long))) bfd_false
-#define        trad_unix_find_nearest_line             (PROTO (boolean, (*),   \
+#define        trad_unix_find_nearest_line             (boolean (*) PARAMS     \
         (bfd *abfd, struct sec  *section,                              \
          struct symbol_cache_entry  **symbols,bfd_vma offset,          \
          CONST char **file, CONST char **func, unsigned int *line))) bfd_false
-#define        trad_unix_sizeof_headers                (PROTO (int, (*),       \
+#define        trad_unix_sizeof_headers                (int (*) PARAMS \
        (bfd *, boolean))) bfd_0
 
 #define trad_unix_bfd_debug_info_start         bfd_void
 #define trad_unix_bfd_debug_info_end           bfd_void
-#define trad_unix_bfd_debug_info_accumulate    (PROTO (void, (*),      \
+#define trad_unix_bfd_debug_info_accumulate    (void (*) PARAMS        \
        (bfd *, struct sec *))) bfd_void
-
+#define trad_unix_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents
+#define trad_unix_bfd_relax_section            bfd_generic_relax_section
 /* If somebody calls any byte-swapping routines, shoot them.  */
 void
 swap_abort()
 {
   abort(); /* This way doesn't require any declaration for ANSI to fuck up */
 }
-#define        NO_GET  ((PROTO(bfd_vma, (*), (         bfd_byte *))) swap_abort )
-#define        NO_PUT  ((PROTO(void,    (*), (bfd_vma, bfd_byte *))) swap_abort )
+#define        NO_GET  ((bfd_vma (*) PARAMS ((         bfd_byte *))) swap_abort )
+#define        NO_PUT  ((void    (*) PARAMS ((bfd_vma, bfd_byte *))) swap_abort )
 
 bfd_target trad_core_vec =
   {
@@ -265,6 +270,7 @@ bfd_target trad_core_vec =
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
+    '_',                                                  /* symbol prefix */
     ' ',                                                  /* ar_pad_char */
     16,                                                           /* ar_max_namelen */
     3,                                                    /* minimum alignment power */