* archures.c (bfd_mach_sparc_64bit_p): Define.
authorJakub Jelinek <jakub@redhat.com>
Fri, 30 Jul 2004 10:08:00 +0000 (10:08 +0000)
committerJakub Jelinek <jakub@redhat.com>
Fri, 30 Jul 2004 10:08:00 +0000 (10:08 +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 fc1aaff9e32b638280f3b3767dac773dfc0da2ba..2a717386972f4d1a65da22807563c2f354665bc6 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 fd34ab61c9079efc4ebbe924dea0e79e6fbeaaa2..4904b6248304a728a4ae63ba6d1a9f9ed51a12c1 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 e693f237c447dc0b5719ee30a04fcc2742650b64..8f5d59bdae03464c61c56a449ae23cee77e1b7d5 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 15868eb54d4f9898f641628cd50a8d59262a11db..d87ff7a46ab2a1dd360a0cbd8394be9709ff407f 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)