From 250d94fd4b15ec8846f60f531fad5d504932d9fa Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 2 Sep 2002 11:47:42 +0000 Subject: * ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded bfd_mach constants. (ecoff_get_magic): Likewise. * elf32-v850.c (v850_elf_object_p): Likewise. (v850_elf_final_write_processing): Likewise. * mipsbsd.c (MY(set_arch_mach)): Likewise. (MY(write_object_contents)): Likewise. * coff64-rs6000.c (xcoff64_write_object_contents): Likewise. * coffcode.h (coff_write_object_contents): Likewise. (coff_set_arch_mach_hook): Add comment describing machine == 0. Remove unnecessary "machine" assignments. (coff_write_relocs): Test for the absolute section sym by testing section and flags. * pdp11.c (NAME(aout,machine_type)): Like aoutx.h. --- bfd/ChangeLog | 15 +++++++++++++++ bfd/coff64-rs6000.c | 2 +- bfd/coffcode.h | 16 ++++------------ bfd/ecoff.c | 12 ++++++------ bfd/elf32-v850.c | 14 +++++++++----- bfd/mipsbsd.c | 10 +++++----- bfd/pdp11.c | 5 ++++- 7 files changed, 44 insertions(+), 30 deletions(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f8a0a9f..423781d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,7 +1,22 @@ 2002-09-02 Alan Modra + * ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded + bfd_mach constants. + (ecoff_get_magic): Likewise. + * elf32-v850.c (v850_elf_object_p): Likewise. + (v850_elf_final_write_processing): Likewise. + * mipsbsd.c (MY(set_arch_mach)): Likewise. + (MY(write_object_contents)): Likewise. + * coff64-rs6000.c (xcoff64_write_object_contents): Likewise. + * coffcode.h (coff_write_object_contents): Likewise. + (coff_set_arch_mach_hook): Add comment describing machine == 0. + Remove unnecessary "machine" assignments. + (coff_write_relocs): Test for the absolute section sym by testing + section and flags. + * aoutx.h (NAME(aout,machine_type)): Recognize bfd_mach_i386_i386 and bfd_mach_i386_i386_intel_syntax. + * pdp11.c (NAME(aout,machine_type)): Likewise. 2002-08-30 John David Anglin diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index d5cce39..61553be 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -1014,7 +1014,7 @@ xcoff64_write_object_contents (abfd) internal_a.o_cputype = 4; break; case bfd_arch_powerpc: - if (bfd_get_mach (abfd) == 0) + if (bfd_get_mach (abfd) == bfd_mach_ppc) internal_a.o_cputype = 3; else internal_a.o_cputype = 1; diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 212c5c6..e47b4d0 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1824,6 +1824,7 @@ coff_set_arch_mach_hook (abfd, filehdr) enum bfd_architecture arch; struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; + /* Zero selects the default machine for an arch. */ machine = 0; switch (internal_f->f_magic) { @@ -1831,13 +1832,11 @@ coff_set_arch_mach_hook (abfd, filehdr) case OR32_MAGIC_BIG: case OR32_MAGIC_LITTLE: arch = bfd_arch_or32; - machine = 0; break; #endif #ifdef PPCMAGIC case PPCMAGIC: arch = bfd_arch_powerpc; - machine = 0; /* what does this mean? (krk) */ break; #endif #ifdef I386MAGIC @@ -1846,20 +1845,17 @@ coff_set_arch_mach_hook (abfd, filehdr) case I386AIXMAGIC: /* Danbury PS/2 AIX C Compiler */ case LYNXCOFFMAGIC: /* shadows the m68k Lynx number below, sigh */ arch = bfd_arch_i386; - machine = 0; break; #endif #ifdef IA64MAGIC case IA64MAGIC: arch = bfd_arch_ia64; - machine = 0; break; #endif #ifdef A29K_MAGIC_BIG case A29K_MAGIC_BIG: case A29K_MAGIC_LITTLE: arch = bfd_arch_a29k; - machine = 0; break; #endif #ifdef ARMMAGIC @@ -2044,7 +2040,6 @@ coff_set_arch_mach_hook (abfd, filehdr) #ifdef WE32KMAGIC case WE32KMAGIC: arch = bfd_arch_we32k; - machine = 0; break; #endif @@ -2082,21 +2077,18 @@ coff_set_arch_mach_hook (abfd, filehdr) case SH_ARCH_MAGIC_WINCE: #endif arch = bfd_arch_sh; - machine = 0; break; #endif #ifdef MIPS_ARCH_MAGIC_WINCE case MIPS_ARCH_MAGIC_WINCE: arch = bfd_arch_mips; - machine = 0; break; #endif #ifdef H8500MAGIC case H8500MAGIC: arch = bfd_arch_h8500; - machine = 0; break; #endif @@ -2106,7 +2098,6 @@ coff_set_arch_mach_hook (abfd, filehdr) case LYNXCOFFMAGIC: #endif arch = bfd_arch_sparc; - machine = 0; break; #endif @@ -2462,7 +2453,8 @@ coff_write_relocs (abfd, first_undef) #ifdef SECTION_RELATIVE_ABSOLUTE_SYMBOL_P if (SECTION_RELATIVE_ABSOLUTE_SYMBOL_P (q,s)) #else - if (q->sym_ptr_ptr == bfd_abs_section_ptr->symbol_ptr_ptr) + if ((*q->sym_ptr_ptr)->section == bfd_abs_section_ptr + && ((*q->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0) #endif /* This is a relocation relative to the absolute symbol. */ n.r_symndx = -1; @@ -4116,7 +4108,7 @@ coff_write_object_contents (abfd) internal_a.o_cputype = 4; break; case bfd_arch_powerpc: - if (bfd_get_mach (abfd) == 0) + if (bfd_get_mach (abfd) == bfd_mach_ppc) internal_a.o_cputype = 3; else internal_a.o_cputype = 1; diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 82baeeb..f37ea56 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -205,21 +205,21 @@ _bfd_ecoff_set_arch_mach_hook (abfd, filehdr) case MIPS_MAGIC_LITTLE: case MIPS_MAGIC_BIG: arch = bfd_arch_mips; - mach = 3000; + mach = bfd_mach_mips3000; break; case MIPS_MAGIC_LITTLE2: case MIPS_MAGIC_BIG2: /* MIPS ISA level 2: the r6000. */ arch = bfd_arch_mips; - mach = 6000; + mach = bfd_mach_mips6000; break; case MIPS_MAGIC_LITTLE3: case MIPS_MAGIC_BIG3: /* MIPS ISA level 3: the r4000. */ arch = bfd_arch_mips; - mach = 4000; + mach = bfd_mach_mips4000; break; case ALPHA_MAGIC: @@ -252,17 +252,17 @@ ecoff_get_magic (abfd) { default: case 0: - case 3000: + case bfd_mach_mips3000: big = MIPS_MAGIC_BIG; little = MIPS_MAGIC_LITTLE; break; - case 6000: + case bfd_mach_mips6000: big = MIPS_MAGIC_BIG2; little = MIPS_MAGIC_LITTLE2; break; - case 4000: + case bfd_mach_mips4000: big = MIPS_MAGIC_BIG3; little = MIPS_MAGIC_LITTLE3; break; diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 193a0bf..888a33a 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1848,8 +1848,12 @@ v850_elf_object_p (abfd) switch (elf_elfheader (abfd)->e_flags & EF_V850_ARCH) { default: - case E_V850_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_v850, 0); break; - case E_V850E_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e); break; + case E_V850_ARCH: + bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850); + break; + case E_V850E_ARCH: + bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e); + break; } return true; } @@ -1865,9 +1869,9 @@ v850_elf_final_write_processing (abfd, linker) switch (bfd_get_mach (abfd)) { - default: - case 0: val = E_V850_ARCH; break; - case bfd_mach_v850e: val = E_V850E_ARCH; break; + default: + case bfd_mach_v850: val = E_V850_ARCH; break; + case bfd_mach_v850e: val = E_V850E_ARCH; break; } elf_elfheader (abfd)->e_flags &=~ EF_V850_ARCH; diff --git a/bfd/mipsbsd.c b/bfd/mipsbsd.c index 85cf0ef..f2802ab 100644 --- a/bfd/mipsbsd.c +++ b/bfd/mipsbsd.c @@ -1,5 +1,5 @@ /* BFD backend for MIPS BSD (a.out) binaries. - Copyright 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ralph Campbell. @@ -91,12 +91,12 @@ MY(set_arch_mach) (abfd, machtype) { case M_MIPS1: arch = bfd_arch_mips; - machine = 3000; + machine = bfd_mach_mips3000; break; case M_MIPS2: arch = bfd_arch_mips; - machine = 4000; + machine = bfd_mach_mips4000; break; default: @@ -164,8 +164,8 @@ MY (write_object_contents) (abfd) case bfd_arch_mips: switch (bfd_get_mach (abfd)) { - case 4000: - case 6000: + case bfd_mach_mips4000: + case bfd_mach_mips6000: N_SET_MACHTYPE (*execp, M_MIPS2); break; default: diff --git a/bfd/pdp11.c b/bfd/pdp11.c index cb47f78..f751436 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -955,7 +955,10 @@ NAME(aout,machine_type) (arch, machine, unknown) break; case bfd_arch_i386: - if (machine == 0) arch_flags = M_386; + if (machine == 0 + || machine == bfd_mach_i386_i386 + || machine == bfd_mach_i386_i386_intel_syntax) + arch_flags = M_386; break; case bfd_arch_a29k: -- cgit v1.1