X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felf-m10300.c;h=d33c85975f97ba3c6ed7ed9abb18ba72b6a6cb77;hb=b08fa4d3bf5914d746515f4f6ca560d7e900ec92;hp=cad2b9c7b8ce41b654f15c4e9c0ce197605fc627;hpb=45d6a902ae8c0f9a0dc22ba33e61f3e6f8bd6492;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index cad2b9c7b8..d33c85975f 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -350,7 +350,7 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs) const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -550,7 +550,7 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section, struct elf32_mn10300_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel, *relend; - if (info->relocateable) + if (info->relocatable) return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1334,10 +1334,10 @@ mn10300_elf_relax_section (abfd, sec, link_info, again) /* For error_return. */ section = sec; - /* We don't have to do anything for a relocateable link, if + /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ - if (link_info->relocateable + if (link_info->relocatable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) @@ -2370,7 +2370,8 @@ compute_function_info (abfd, hash, addr, contents) if (hash->movm_args & 0x08) hash->movm_stack_size += 8 * 4; - if (bfd_get_mach (abfd) == bfd_mach_am33) + if (bfd_get_mach (abfd) == bfd_mach_am33 + || bfd_get_mach (abfd) == bfd_mach_am33_2) { /* "exother" space. e0, e1, mdrq, mcrh, mcrl, mcvf */ if (hash->movm_args & 0x1) @@ -2541,12 +2542,12 @@ mn10300_elf_symbol_address_p (abfd, sec, isym, addr) static bfd_byte * mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocateable, symbols) + data, relocatable, symbols) bfd *output_bfd; struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - bfd_boolean relocateable; + bfd_boolean relocatable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -2558,11 +2559,11 @@ mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order, /* We only need to handle the case of relaxing, or of having a particular set of section contents, specially. */ - if (relocateable + if (relocatable || elf_section_data (input_section)->this_hdr.contents == NULL) return bfd_generic_get_relocated_section_contents (output_bfd, link_info, link_order, data, - relocateable, + relocatable, symbols); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -2750,6 +2751,9 @@ elf_mn10300_mach (flags) case E_MN10300_MACH_AM33: return bfd_mach_am33; + + case E_MN10300_MACH_AM33_2: + return bfd_mach_am33_2; } } @@ -2774,6 +2778,10 @@ _bfd_mn10300_elf_final_write_processing (abfd, linker) case bfd_mach_am33: val = E_MN10300_MACH_AM33; break; + + case bfd_mach_am33_2: + val = E_MN10300_MACH_AM33_2; + break; } elf_elfheader (abfd)->e_flags &= ~ (EF_MN10300_MACH);