* inflow.c (pass_signal): Signal handlers take one int arg;
[deliverable/binutils-gdb.git] / bfd / targets.c
index 912adb9a3574ad1e5b3031c3bb2adae5f18c4126..4fa29759b95b6475d4c3c00742215f2e0cbc59e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Generic target-file-type support for the BFD library.
-   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -135,6 +135,7 @@ of a file.
 .    bfd_target_ecoff_flavour,
 .    bfd_target_elf_flavour,
 .    bfd_target_ieee_flavour,
+.    bfd_target_nlm_flavour,
 .    bfd_target_oasys_flavour,
 .    bfd_target_tekhex_flavour,
 .    bfd_target_srec_flavour,
@@ -180,19 +181,25 @@ entry points, since they don't take BFD as first arg.  Certain other handlers
 could do the same.
 
 .  bfd_vma      (*bfd_getx64) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((bfd_byte *));
 .  void         (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
 .  bfd_vma      (*bfd_getx32) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((bfd_byte *));
 .  void         (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *));
 .  bfd_vma      (*bfd_getx16) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((bfd_byte *));
 .  void         (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
 
 Byte swapping for the headers
 
 .  bfd_vma      (*bfd_h_getx64) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((bfd_byte *));
 .  void         (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
 .  bfd_vma      (*bfd_h_getx32) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((bfd_byte *));
 .  void         (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *));
 .  bfd_vma      (*bfd_h_getx16) PARAMS ((bfd_byte *));
+.  bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((bfd_byte *));
 .  void         (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
 
 Format dependent routines: these are vectors of entry points
@@ -255,6 +262,10 @@ Symbols and relocations
 .                                      struct symbol_cache_entry *,
 .                                      bfd_print_symbol_type));
 .#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
+.  void          (*_bfd_get_symbol_info) PARAMS ((bfd *,
+.                                      struct symbol_cache_entry *,
+.                                      symbol_info *));
+.#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
 
 .  alent *    (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
 .
@@ -277,10 +288,14 @@ Symbols and relocations
 .  void       (*_bfd_debug_info_accumulate) PARAMS ((bfd *, struct sec *));
 .
 .  bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *,
-.                    struct bfd_seclet *, bfd_byte *data));
+.                    struct bfd_seclet *, bfd_byte *data,
+.                    boolean relocateable));
 .
 .  boolean    (*_bfd_relax_section) PARAMS ((bfd *, struct sec *,
 .                    struct symbol_cache_entry **));
+.
+.  boolean    (*_bfd_seclet_link) PARAMS ((bfd *, PTR data,
+.                     boolean relocateable));
 
 . {* See documentation on reloc types.  *}
 . CONST struct reloc_howto_struct *
@@ -295,10 +310,8 @@ Symbols and relocations
 .       void *ptr,
 .       unsigned long size));
 
-Data for use by back-end routines; e.g., for a.out, includes whether
-this particular target maps ZMAGIC files contiguously or with text and
-data separated.  Could perhaps also be used to eliminate some of the
-above COFF-specific fields.
+Data for use by back-end routines, which isn't generic enough to belong
+in this structure.
 
 . PTR backend_data;
 .} bfd_target;
@@ -315,38 +328,58 @@ above COFF-specific fields.
 #if MINIMIZE && defined(DEFAULT_VECTOR) && !defined(SELECT_VECS)
 #ifdef TRAD_CORE
 #define SELECT_VECS &DEFAULT_VECTOR,&trad_core_vec
-#else
+#endif
 #ifdef SCO_CORE
 #define SELECT_VECS &DEFAULT_VECTOR,&sco_core_vec
-#else
+#endif
 #ifdef AIX386_CORE
 #define SELECT_VECS &DEFAULT_VECTOR,&aix386_core_vec
-#else
-#define SELECT_VECS &DEFAULT_VECTOR
 #endif
+#ifdef HPUX_CORE
+#define SELECT_VECS &DEFAULT_VECTOR,&hpux_core_vec
 #endif
+#ifndef SELECT_VECS
+#define SELECT_VECS &DEFAULT_VECTOR
 #endif
 #endif
 
 /* All known xvecs.  They are listed a second time below, since
    we can't intermix extern's and initializers.  */
+extern bfd_target i386lynx_vec;
 extern bfd_target ecoff_little_vec;
 extern bfd_target ecoff_big_vec;
+extern bfd_target aout_mips_little_vec;
+extern bfd_target aout_mips_big_vec;
 extern bfd_target sunos_big_vec;
 extern bfd_target demo_64_vec;
 extern bfd_target srec_vec;
+extern bfd_target symbolsrec_vec;
 extern bfd_target tekhex_vec;
 extern bfd_target a_out_adobe_vec;
 extern bfd_target b_out_vec_little_host;
 extern bfd_target b_out_vec_big_host;
 extern bfd_target icoff_little_vec;
 extern bfd_target icoff_big_vec;
-extern bfd_target elf_little_vec;
-extern bfd_target elf_big_vec;
+extern bfd_target bfd_elf32_sparc_vec;
+extern bfd_target bfd_elf32_i386_vec;
+extern bfd_target bfd_elf32_m68k_vec;
+extern bfd_target bfd_elf32_i860_vec;
+extern bfd_target bfd_elf32_m88k_vec;
+extern bfd_target bfd_elf32_bigmips_vec;
+extern bfd_target bfd_elf32_littlemips_vec;
+extern bfd_target bfd_elf32_big_generic_vec;
+extern bfd_target bfd_elf32_little_generic_vec;
+extern bfd_target bfd_elf64_big_generic_vec;
+extern bfd_target bfd_elf64_little_generic_vec;
+extern bfd_target bfd_nlm32_big_generic_vec;
+extern bfd_target bfd_nlm32_little_generic_vec;
+extern bfd_target bfd_nlm64_big_generic_vec;
+extern bfd_target bfd_nlm64_little_generic_vec;
 extern bfd_target ieee_vec;
 extern bfd_target oasys_vec;
 extern bfd_target m88kbcs_vec;
 extern bfd_target m68kcoff_vec;
+extern bfd_target m68kcoffun_vec;
 extern bfd_target i386coff_vec;
 extern bfd_target i386aout_vec;
 extern bfd_target i386linux_vec;
@@ -354,11 +387,16 @@ extern bfd_target a29kcoff_big_vec;
 extern bfd_target trad_core_vec;
 extern bfd_target sco_core_vec;
 extern bfd_target aix386_core_vec;
+extern bfd_target hpux_core_vec;
 extern bfd_target rs6000coff_vec;
 extern bfd_target h8300coff_vec;
+extern bfd_target h8500coff_vec;
 extern bfd_target z8kcoff_vec;
 extern bfd_target we32kcoff_vec;
-#ifdef HOST_HPPAHPUX
+extern bfd_target shcoff_vec;
+extern bfd_target hp300hpux_vec;
+
+#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD)
 extern bfd_target hppa_vec;
 #endif
 
@@ -366,16 +404,13 @@ extern bfd_target hppa_vec;
 extern bfd_target DEFAULT_VECTOR;
 #endif
 
+bfd_target *target_vector[] = {
+
 #ifdef SELECT_VECS
 
-bfd_target *target_vector[] = {
        SELECT_VECS,
-       0
-};
 
-#else
-
-bfd_target *target_vector[] = {
+#else /* not SELECT_VECS */
 
 #ifdef DEFAULT_VECTOR
        &DEFAULT_VECTOR,
@@ -383,8 +418,11 @@ bfd_target *target_vector[] = {
 
        &i386coff_vec,
        &i386aout_vec,
+       &i386lynx_vec,
        &ecoff_little_vec,
        &ecoff_big_vec,
+       &aout_mips_little_vec,
+       &aout_mips_big_vec,
        &ieee_vec,
 #if 0
        /* We have no oasys tools anymore, so we can't test any of this
@@ -395,27 +433,45 @@ bfd_target *target_vector[] = {
        &oasys_vec,
 #endif
        &sunos_big_vec,
-#ifdef HOST_64_BIT
+#ifdef BFD64
        &demo_64_vec,   /* Only compiled if host has long-long support */
 #endif
        &h8300coff_vec,
        &z8kcoff_vec,
        &m88kbcs_vec,
        &srec_vec,
+       &symbolsrec_vec,
 /*     &tekhex_vec,*/
        &icoff_little_vec,
        &icoff_big_vec,
-       &elf_little_vec,
-       &elf_big_vec,
+       &bfd_elf32_sparc_vec,
+       &bfd_elf32_i386_vec,
+       &bfd_elf32_m68k_vec,
+       &bfd_elf32_i860_vec,
+       &bfd_elf32_m88k_vec,
+       &bfd_elf32_littlemips_vec,
+       &bfd_elf32_bigmips_vec,
+       &bfd_elf32_little_generic_vec,
+       &bfd_elf32_big_generic_vec,
+       &bfd_nlm32_little_generic_vec,
+       &bfd_nlm32_big_generic_vec,
+#ifdef BFD64
+       &bfd_elf64_little_generic_vec,
+       &bfd_elf64_big_generic_vec,
+       &bfd_nlm64_little_generic_vec,
+       &bfd_nlm64_big_generic_vec,
+#endif
        &a_out_adobe_vec,
        &b_out_vec_little_host,
        &b_out_vec_big_host,
        &m68kcoff_vec,
+       &m68kcoffun_vec,
        &a29kcoff_big_vec,
        &rs6000coff_vec,
-#ifdef HOST_HPPAHPUX
+#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD)
         &hppa_vec,
 #endif
+       &hp300hpux_vec,
        &we32kcoff_vec,
 
 #ifdef TRAD_CORE
@@ -425,13 +481,16 @@ bfd_target *target_vector[] = {
        &sco_core_vec,
 #endif
 #ifdef AIX386_CORE
-  &aix386_core_vec,
+       &aix386_core_vec,
 #endif
+#ifdef HPUX_CORE
+       &hpux_core_vec,
+#endif
+
+#endif /* not SELECT_VECS */
        NULL, /* end of list marker */
 };
 
-#endif
-
 /* default_vector[0] contains either the address of the default vector,
    if there is one, or zero if there isn't.  */
 
This page took 0.02571 seconds and 4 git commands to generate.