From 7946e94a55158e8100d029a5ee9825f35e82e422 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 30 Jul 2004 10:08:00 +0000 Subject: [PATCH] * archures.c (bfd_mach_sparc_64bit_p): Define. * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Use it. * bfd-in2.h: Rebuilt. --- bfd/ChangeLog | 6 ++++++ bfd/archures.c | 3 +++ bfd/bfd-in2.h | 3 +++ bfd/elf32-sparc.c | 8 +++++--- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fc1aaff..2a71738 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-07-30 Jakub Jelinek + + * 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 Introduce SH2a support. diff --git a/bfd/archures.c b/bfd/archures.c index fd34ab6..4904b62 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -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 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index e693f23..8f5d59b 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -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 diff --git a/bfd/elf32-sparc.c b/bfd/elf32-sparc.c index 15868eb..d87ff7a 100644 --- a/bfd/elf32-sparc.c +++ b/bfd/elf32-sparc.c @@ -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) -- 2.7.4