#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#include "elf-bfd.h"
static reloc_howto_type dummy =
HOWTO (0,
0,
0,
0,
FALSE,
0,
complain_overflow_dont,
NULL,
"UNKNOWN",
FALSE,
0,
0,
FALSE);
static void
elf_generic_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
arelent *bfd_reloc,
Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED)
{
bfd_reloc->howto = &dummy;
}
static void
elf_generic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
arelent *bfd_reloc,
Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED)
{
bfd_reloc->howto = &dummy;
}
static void
check_for_relocs (bfd * abfd, asection * o, void * failed)
{
if ((o->flags & SEC_RELOC) != 0)
{
Elf_Internal_Ehdr *ehdrp;
ehdrp = elf_elfheader (abfd);
_bfd_error_handler (_("%B: Relocations in generic ELF (EM: %d)"),
abfd, ehdrp->e_machine);
bfd_set_error (bfd_error_wrong_format);
* (bfd_boolean *) failed = TRUE;
}
}
static bfd_boolean
elf64_generic_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
bfd_boolean failed = FALSE;
bfd_map_over_sections (abfd, check_for_relocs, & failed);
if (failed)
return FALSE;
return bfd_elf_link_add_symbols (abfd, info);
}
#define TARGET_LITTLE_SYM bfd_elf64_little_generic_vec
#define TARGET_LITTLE_NAME "elf64-little"
#define TARGET_BIG_SYM bfd_elf64_big_generic_vec
#define TARGET_BIG_NAME "elf64-big"
#define ELF_ARCH bfd_arch_unknown
#define ELF_MACHINE_CODE EM_NONE
#define ELF_MAXPAGESIZE 0x1
#define bfd_elf64_bfd_reloc_type_lookup bfd_default_reloc_type_lookup
#define bfd_elf64_bfd_link_add_symbols elf64_generic_link_add_symbols
#define elf_info_to_howto elf_generic_info_to_howto
#define elf_info_to_howto_rel elf_generic_info_to_howto_rel
#include "elf64-target.h"