/* MeP-specific support for 32-bit ELF.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 2001-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
default:
/* Pacify gcc -Wall. */
- fprintf (stderr, "mep: no reloc for code %d\n", code);
+ (*_bfd_error_handler) (_("mep: no reloc for code %d"), code);
return NULL;
}
if (mep_elf_howto_table[type].type != type)
{
- fprintf (stderr, "MeP: howto %d has type %d\n", type, mep_elf_howto_table[type].type);
+ (*_bfd_error_handler) (_("MeP: howto %d has type %d"),
+ type, mep_elf_howto_table[type].type);
abort ();
}
}
else
{
- bfd_boolean warned, unresolved_reloc;
+ bfd_boolean warned, unresolved_reloc, ignored;
RELOC_FOR_GLOBAL_SYMBOL(info, input_bfd, input_section, rel,
r_symndx, symtab_hdr, sym_hashes,
h, sec, relocation,
- unresolved_reloc, warned);
+ unresolved_reloc, warned, ignored);
name = h->root.root.string;
}
- if (sec != NULL && elf_discarded_section (sec))
- {
- /* For relocs against symbols from removed linkonce sections,
- or sections discarded by a linker script, we just want the
- section contents zeroed. Avoid any special processing. */
- _bfd_clear_contents (howto, input_bfd, contents + rel->r_offset);
- rel->r_info = 0;
- rel->r_addend = 0;
- continue;
- }
+ if (sec != NULL && discarded_section (sec))
+ RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
+ rel, 1, relend, howto, 0, contents);
if (info->relocatable)
continue;
return TRUE;
}
-static bfd_boolean
-mep_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd)
-{
- if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
- || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
- return TRUE;
-
- elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
- elf_flags_init (obfd) = TRUE;
-
- /* Copy object attributes. */
- _bfd_elf_copy_obj_attributes (ibfd, obfd);
-
- return TRUE;
-}
-
/* Merge backend specific data from an object file to the output
object file when linking. */
flagword old_flags, new_flags;
flagword old_partial, new_partial;
- /* Check if we have the same endianess. */
+ /* Check if we have the same endianness. */
if (_bfd_generic_verify_endian_match (ibfd, obfd) == FALSE)
return FALSE;
case EF_MEP_CPU_C2: return bfd_mach_mep;
case EF_MEP_CPU_C3: return bfd_mach_mep;
case EF_MEP_CPU_C4: return bfd_mach_mep;
+ case EF_MEP_CPU_C5: return bfd_mach_mep_c5;
case EF_MEP_CPU_H1: return bfd_mach_mep_h1;
}
#define ELF_MACHINE_CODE EM_CYGNUS_MEP
#define ELF_MAXPAGESIZE 0x1000
-#define TARGET_BIG_SYM bfd_elf32_mep_vec
+#define TARGET_BIG_SYM mep_elf32_vec
#define TARGET_BIG_NAME "elf32-mep"
-#define TARGET_LITTLE_SYM bfd_elf32_mep_little_vec
+#define TARGET_LITTLE_SYM mep_elf32_le_vec
#define TARGET_LITTLE_NAME "elf32-mep-little"
#define elf_info_to_howto_rel NULL
#define bfd_elf32_bfd_reloc_type_lookup mep_reloc_type_lookup
#define bfd_elf32_bfd_reloc_name_lookup mep_reloc_name_lookup
#define bfd_elf32_bfd_set_private_flags mep_elf_set_private_flags
-#define bfd_elf32_bfd_copy_private_bfd_data mep_elf_copy_private_bfd_data
#define bfd_elf32_bfd_merge_private_bfd_data mep_elf_merge_private_bfd_data
#define bfd_elf32_bfd_print_private_bfd_data mep_elf_print_private_bfd_data