/* 32-bit ELF support for TI C6X
- Copyright 2010-2013 Free Software Foundation, Inc.
+ Copyright (C) 2010-2015 Free Software Foundation, Inc.
Contributed by Joseph Myers <joseph@codesourcery.com>
Bernd Schmidt <bernds@codesourcery.com>
{
HOWTO (R_C6000_NONE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_C6000_NONE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
while (again)
{
again = FALSE;
- for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
+ for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
{
asection *o;
s = htab->sdynbss;
- return _bfd_elf_adjust_dynamic_copy (h, s);
+ return _bfd_elf_adjust_dynamic_copy (info, h, s);
}
static bfd_boolean
}
else
{
- bfd_boolean warned;
+ bfd_boolean warned, 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);
}
if (sec != NULL && discarded_section (sec))
/* Set up .got offsets for local syms, and space for local dynamic
relocs. */
- for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
+ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
{
bfd_signed_vma *local_got;
bfd_signed_vma *end_local_got;
/* Walk over all EXIDX sections, and create backlinks from the corrsponding
text sections. */
- for (inp = info->input_bfds; inp != NULL; inp = inp->link_next)
+ for (inp = info->input_bfds; inp != NULL; inp = inp->link.next)
{
asection *sec;
return TRUE;
}
-static void
-elf32_tic6x_set_osabi (bfd *abfd, struct bfd_link_info *link_info)
-{
- if (link_info != NULL && link_info->relocatable)
- return;
- _bfd_elf_set_osabi (abfd, link_info);
-}
-
-#define TARGET_LITTLE_SYM bfd_elf32_tic6x_le_vec
+#define TARGET_LITTLE_SYM tic6x_elf32_le_vec
#define TARGET_LITTLE_NAME "elf32-tic6x-le"
-#define TARGET_BIG_SYM bfd_elf32_tic6x_be_vec
+#define TARGET_BIG_SYM tic6x_elf32_be_vec
#define TARGET_BIG_NAME "elf32-tic6x-be"
#define ELF_ARCH bfd_arch_tic6x
#define ELF_TARGET_ID TIC6X_ELF_DATA
#define elf32_bed elf32_tic6x_linux_bed
#undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM bfd_elf32_tic6x_linux_le_vec
+#define TARGET_LITTLE_SYM tic6x_elf32_linux_le_vec
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf32-tic6x-linux-le"
#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM bfd_elf32_tic6x_linux_be_vec
+#define TARGET_BIG_SYM tic6x_elf32_linux_be_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf32-tic6x-linux-be"
#undef ELF_OSABI
#define ELF_OSABI ELFOSABI_C6000_LINUX
-#undef elf_backend_post_process_headers
-#define elf_backend_post_process_headers elf32_tic6x_set_osabi
-
#include "elf32-target.h"
#undef elf32_bed
#define elf32_bed elf32_tic6x_elf_bed
#undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM bfd_elf32_tic6x_elf_le_vec
+#define TARGET_LITTLE_SYM tic6x_elf32_c6000_le_vec
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf32-tic6x-elf-le"
#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM bfd_elf32_tic6x_elf_be_vec
+#define TARGET_BIG_SYM tic6x_elf32_c6000_be_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf32-tic6x-elf-be"
#undef ELF_OSABI
#define ELF_OSABI ELFOSABI_C6000_ELFABI
-#undef elf_backend_post_process_headers
-#define elf_backend_post_process_headers elf32_tic6x_set_osabi
-
#include "elf32-target.h"