* archures.c (bfd_mach_i960_hx): Define.
authorIan Lance Taylor <ian@airs.com>
Mon, 5 Feb 1996 23:57:39 +0000 (23:57 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 5 Feb 1996 23:57:39 +0000 (23:57 +0000)
* bfd-in2.h: Rebuild.
* cpu-i960.c (scan_960_mach): Accept machine "hx".
(MATRIX): Expand entries for HX.
(arch_info_struct): Add i960:hx entry.
* bout.c (b_out_set_arch_mach): Handle bfd_mach_i960_hx.
* coffcode.h (coff_set_arch_mach_hook): Handle F_I960HX.
(coff_set_flags): Handle bfd_mach_i960_hx.

bfd/ChangeLog
bfd/archures.c
bfd/bfd-in2.h
bfd/coffcode.h
bfd/cpu-i960.c

index 0f9d051b711d2271198603de7676c4d7ff3cc36b..41a276feeb628dd31cab9b61a1b6c183bca702c8 100644 (file)
@@ -1,5 +1,14 @@
 Mon Feb  5 10:38:27 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+       * archures.c (bfd_mach_i960_hx): Define.
+       * bfd-in2.h: Rebuild.
+       * cpu-i960.c (scan_960_mach): Accept machine "hx".
+       (MATRIX): Expand entries for HX.
+       (arch_info_struct): Add i960:hx entry.
+       * bout.c (b_out_set_arch_mach): Handle bfd_mach_i960_hx.
+       * coffcode.h (coff_set_arch_mach_hook): Handle F_I960HX.
+       (coff_set_flags): Handle bfd_mach_i960_hx.
+
        Support for building as a shared library, based on patches from
        Alan Modra <alan@spri.levels.unisa.edu.au>:
        * configure.in: Add AC_ARG_ENABLE for shared and commonbfdlib.
index 8c45942128bef8ee1826dd7b077f6b65bf83d51f..8dea24ff88a069d7856fbd3ae42a69a3b9f66ca2 100644 (file)
@@ -89,11 +89,12 @@ DESCRIPTION
 . {* start-sanitize-i960xl *}
 .#define bfd_mach_i960_xl       7
 . {* end-sanitize-i960xl *}
+.#define bfd_mach_i960_hx        8
 .
 .  bfd_arch_a29k,      {* AMD 29000 *}
 .  bfd_arch_sparc,     {* SPARC *}
 .#define bfd_mach_sparc                        1
-{* The difference between v8plus and v9 is that v9 is a true 64 bit env.  *}
+.{* The difference between v8plus and v9 is that v9 is a true 64 bit env.  *}
 .#define bfd_mach_sparc_v8plus         2
 .#define bfd_mach_sparc_v8plusa                3 {* with ultrasparc add'ns *}
 .#define bfd_mach_sparc_v9             4
index 224edc401d03c1f76e5b0495c3622811f5c62bb7..4e4aa8610f96c270a85e2e99c69ffdee2dfa7d50 100644 (file)
@@ -1106,10 +1106,12 @@ enum bfd_architecture
   /* start-sanitize-i960xl */
 #define bfd_mach_i960_xl        7
   /* end-sanitize-i960xl */
+#define bfd_mach_i960_hx        8
 
   bfd_arch_a29k,       /* AMD 29000 */
   bfd_arch_sparc,      /* SPARC */
 #define bfd_mach_sparc                 1
+ /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 #define bfd_mach_sparc_v8plus          2
 #define bfd_mach_sparc_v8plusa         3  /* with ultrasparc add'ns */
 #define bfd_mach_sparc_v9              4
@@ -1797,6 +1799,10 @@ typedef struct symbol_cache_entry
         /* Symbol is from dynamic linking information.  */
 #define BSF_DYNAMIC       0x8000
 
+        /* The symbol denotes a data object.  Used in ELF, and perhaps
+          others someday.  */
+#define BSF_OBJECT        0x10000
+
   flagword flags;
 
         /* A pointer to the section to which this symbol is
index 9699f316bde2d60c2210c438b29937f0819e19ce..2518f77729f7370ca39ea7f3b8538e5c1b1d0778 100644 (file)
@@ -844,8 +844,7 @@ dependent COFF routines:
 .#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
 .        ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 .         (obfd, info, ibfd, sec, rel, adjustedp))
-.#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
-.                                     value, string, cp, coll, hashp)\
+.#define bfd_coff_link_add_one_symbol(info,abfd,name,flags,section,value,string,cp,coll,hashp)\
 .        ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 .         (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 .
@@ -1267,6 +1266,9 @@ coff_set_arch_mach_hook (abfd, filehdr)
          machine = bfd_mach_i960_xl;
          break;
          /* end-sanitize-i960xl */
+       case F_I960HX:
+         machine = bfd_mach_i960_hx;
+         break;
        }
       break;
 #endif
@@ -1751,6 +1753,9 @@ coff_set_flags (abfd, magicp, flagsp)
            flags = F_I960XL;
            break;
            /* end-sanitize-i960xl */
+         case bfd_mach_i960_hx:
+           flags = F_I960HX;
+           break;
          default:
            return false;
          }
index 74ec2183742895a4b9c4eae4c63ebeeacaa3a1ee..3b5054b0d7eb39639b7753a4a242667295e74a38 100644 (file)
@@ -30,8 +30,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static boolean
 scan_960_mach (ap, string)
-     CONST bfd_arch_info_type *ap;
-     CONST char *string;
+     const bfd_arch_info_type *ap;
+     const char *string;
 {
   unsigned long machine;
 
@@ -79,6 +79,8 @@ scan_960_mach (ap, string)
   else if (string[0] == 'x' && string[1] == 'l')
     machine = bfd_mach_i960_xl;
   /* end-sanitize-i960xl */
+  else if (string[0] == 'h' && string[1] == 'x')
+    machine = bfd_mach_i960_hx;
   else
     return false;
   if (machine == ap->mach)   return true;
@@ -91,10 +93,10 @@ scan_960_mach (ap, string)
    machine which would be compatible with both and returns a pointer
    to its info structure */
 
-static CONST bfd_arch_info_type *
+static const bfd_arch_info_type *
 compatible (a,b)
-     CONST bfd_arch_info_type *a;
-     CONST bfd_arch_info_type *b;
+     const bfd_arch_info_type *a;
+     const bfd_arch_info_type *b;
 {
 
   /* The i960 has distinct subspecies which may not interbreed:
@@ -115,27 +117,23 @@ compatible (a,b)
 #define MC     bfd_mach_i960_mc    /*4*/
 #define XA     bfd_mach_i960_xa    /*5*/
 #define CA     bfd_mach_i960_ca    /*6*/
-#define MAX_ARCH ((int)CA)
-
 /* start-sanitize-i960xl */
 #define XL     bfd_mach_i960_xl    /*7*/
-#undef MAX_ARCH
-#define MAX_ARCH ((int)XL)
 /* end-sanitize-i960xl */
-
+#define HX     bfd_mach_i960_hx    /*8*/
+#define MAX_ARCH ((int)HX)
 
   static CONST unsigned long matrix[MAX_ARCH+1][MAX_ARCH+1] = 
     {
-      { ERROR, CORE,   KA,     KB,     MC,     XA,     CA },
-      { CORE,  CORE,   KA,     KB,     MC,     XA,     CA },
-      { KA,    KA,     KA,     KB,     MC,     XA,     ERROR },
-      { KB,    KB,     KB,     KB,     MC,     XA,     ERROR },
-      { MC,    MC,     MC,     MC,     MC,     XA,     ERROR },
-      { XA,    XA,     XA,     XA,     XA,     XA,     ERROR },
-      { CA,    CA,     ERROR,  ERROR,  ERROR,  ERROR,  CA },
-      /* start-sanitize-i960xl */
-      { XL,    ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  XL },
-      /* end-sanitize-i960xl */
+      { ERROR, CORE,   KA,     KB,     MC,     XA,     CA,     7,      HX },
+      { CORE,  CORE,   KA,     KB,     MC,     XA,     CA,     7,      HX },
+      { KA,    KA,     KA,     KB,     MC,     XA,     ERROR,  ERROR,  ERROR},
+      { KB,    KB,     KB,     KB,     MC,     XA,     ERROR,  ERROR,  ERROR},
+      { MC,    MC,     MC,     MC,     MC,     XA,     ERROR,  ERROR,  ERROR},
+      { XA,    XA,     XA,     XA,     XA,     XA,     ERROR,  ERROR,  ERROR},
+      { CA,    CA,     ERROR,  ERROR,  ERROR,  ERROR,  CA,     ERROR,  ERROR},
+      { 7,     ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  7 },
+      { HX,    ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  ERROR,  8 },
     };
 
 
@@ -152,28 +150,21 @@ compatible (a,b)
 
 
 int bfd_default_scan_num_mach();
-#define N(a,b,d) \
-{ 32, 32, 8,bfd_arch_i960,a,"i960",b,3,d,compatible,scan_960_mach,0,}
+#define N(a,b,d,n) \
+{ 32, 32, 8,bfd_arch_i960,a,"i960",b,3,d,compatible,scan_960_mach,n,}
 
-static bfd_arch_info_type arch_info_struct[] = 
+static const bfd_arch_info_type arch_info_struct[] = 
 { 
-  N(bfd_mach_i960_core, "i960:core", true),
-  N(bfd_mach_i960_ka_sa,"i960:ka_sa",false),
-  N(bfd_mach_i960_kb_sb,"i960:kb_sb",false),
-  N(bfd_mach_i960_mc,   "i960:mc",   false),
-  N(bfd_mach_i960_xa,   "i960:xa",   false),
-  N(bfd_mach_i960_ca,   "i960:ca",   false),
+  N(bfd_mach_i960_ka_sa,"i960:ka_sa",false, &arch_info_struct[1]),
+  N(bfd_mach_i960_kb_sb,"i960:kb_sb",false, &arch_info_struct[2]),
+  N(bfd_mach_i960_mc,   "i960:mc",   false, &arch_info_struct[3]),
+  N(bfd_mach_i960_xa,   "i960:xa",   false, &arch_info_struct[4]),
+  N(bfd_mach_i960_ca,   "i960:ca",   false, &arch_info_struct[5]),
   /* start-sanitize-i960xl */
-  N(bfd_mach_i960_xl,   "i960:xl",   false),
+  N(bfd_mach_i960_xl,   "i960:xl",   false, &arch_info_struct[6]),
   /* end-sanitize-i960xl */
+  N(bfd_mach_i960_hx,  "i960:hx",   false, 0),
 };
 
-
-void
-bfd_i960_arch ()
-{
-  unsigned int i;
-  for (i = 0; i < sizeof(arch_info_struct)/sizeof (*arch_info_struct); i++)  {
-    bfd_arch_linkin(arch_info_struct + i);
-  }
-}
+const bfd_arch_info_type bfd_i960_arch =
+  N(bfd_mach_i960_core, "i960:core", true, &arch_info_struct[0]);