OSDN Git Service

* archures.c (bfd_mach_sparc_64bit_p): Define.
authorjakub <jakub>
Fri, 30 Jul 2004 10:07:54 +0000 (10:07 +0000)
committerjakub <jakub>
Fri, 30 Jul 2004 10:07:54 +0000 (10:07 +0000)
* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Use it.
* bfd-in2.h: Rebuilt.

bfd/ChangeLog
bfd/archures.c
bfd/bfd-in2.h
bfd/elf32-sparc.c

index fc1aaff..2a71738 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * archures.c (bfd_mach_sparc_64bit_p): Define.
+       * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Use it.
+       * bfd-in2.h: Rebuilt.
+
 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
 
        Introduce SH2a support.
index fd34ab6..4904b62 100644 (file)
@@ -128,6 +128,9 @@ DESCRIPTION
 .#define bfd_mach_sparc_v9_p(mach) \
 .  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
 .   && (mach) != bfd_mach_sparc_sparclite_le)
+.{* Nonzero if MACH is a 64 bit sparc architecture.  *}
+.#define bfd_mach_sparc_64bit_p(mach) \
+.  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
 .  bfd_arch_mips,      {* MIPS Rxxxx *}
 .#define bfd_mach_mips3000             3000
 .#define bfd_mach_mips3900             3900
index e693f23..8f5d59b 100644 (file)
@@ -1576,6 +1576,9 @@ enum bfd_architecture
 #define bfd_mach_sparc_v9_p(mach) \
   ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
    && (mach) != bfd_mach_sparc_sparclite_le)
+/* Nonzero if MACH is a 64 bit sparc architecture.  */
+#define bfd_mach_sparc_64bit_p(mach) \
+  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
   bfd_arch_mips,      /* MIPS Rxxxx */
 #define bfd_mach_mips3000              3000
 #define bfd_mach_mips3900              3900
index 15868eb..d87ff7a 100644 (file)
@@ -3303,6 +3303,7 @@ elf32_sparc_merge_private_bfd_data (ibfd, obfd)
      bfd *obfd;
 {
   bfd_boolean error;
+  unsigned long ibfd_mach;
   /* FIXME: This should not be static.  */
   static unsigned long previous_ibfd_e_flags = (unsigned long) -1;
 
@@ -3312,7 +3313,8 @@ elf32_sparc_merge_private_bfd_data (ibfd, obfd)
 
   error = FALSE;
 
-  if (bfd_get_mach (ibfd) >= bfd_mach_sparc_v9)
+  ibfd_mach = bfd_get_mach (ibfd);
+  if (bfd_mach_sparc_64bit_p (ibfd_mach))
     {
       error = TRUE;
       (*_bfd_error_handler)
@@ -3321,8 +3323,8 @@ elf32_sparc_merge_private_bfd_data (ibfd, obfd)
     }
   else if ((ibfd->flags & DYNAMIC) == 0)
     {
-      if (bfd_get_mach (obfd) < bfd_get_mach (ibfd))
-       bfd_set_arch_mach (obfd, bfd_arch_sparc, bfd_get_mach (ibfd));
+      if (bfd_get_mach (obfd) < ibfd_mach)
+       bfd_set_arch_mach (obfd, bfd_arch_sparc, ibfd_mach);
     }
 
   if (((elf_elfheader (ibfd)->e_flags & EF_SPARC_LEDATA)