0, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_dont,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_NONE", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
32, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_dont,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_DIR32", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_dont,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_DIR16", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
8, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- special, /* special_function */
- "R_H8_DIR16", /* name */
+ complain_overflow_dont,/* complain_on_overflow */
+ special, /* special_function */
+ "R_H8_DIR8", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
0x000000ff, /* dst_mask */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
- special, /* special_function */
+ special, /* special_function */
"R_H8_DIR16A8", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
- special, /* special_function */
+ special, /* special_function */
"R_H8_DIR16R8", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
- special, /* special_function */
+ special, /* special_function */
"R_H8_DIR24A8", /* name */
TRUE, /* partial_inplace */
0xff000000, /* src_mask */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
- special, /* special_function */
+ special, /* special_function */
"R_H8_DIR24R8", /* name */
TRUE, /* partial_inplace */
0xff000000, /* src_mask */
32, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_dont,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_DIR32", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_signed,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_PCREL16", /* name */
FALSE, /* partial_inplace */
0xffff, /* src_mask */
8, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
- special, /* special_function */
+ complain_overflow_signed,/* complain_on_overflow */
+ special, /* special_function */
"R_H8_PCREL8", /* name */
FALSE, /* partial_inplace */
0xff, /* src_mask */
struct elf_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;
case E_H8_MACH_H8300SN:
return bfd_mach_h8300sn;
+
+ case E_H8_MACH_H8300SX:
+ return bfd_mach_h8300sx;
+
+ case E_H8_MACH_H8300SXN:
+ return bfd_mach_h8300sxn;
}
}
case bfd_mach_h8300sn:
val = E_H8_MACH_H8300SN;
break;
+
+ case bfd_mach_h8300sx:
+ val = E_H8_MACH_H8300SX;
+ break;
+
+ case bfd_mach_h8300sxn:
+ val = E_H8_MACH_H8300SXN;
+ break;
}
elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH);
/* Assume nothing changes. */
*again = FALSE;
- /* 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)
&& value >= 0xff00
&& value <= 0xffff)
|| ((bfd_get_mach (abfd) == bfd_mach_h8300h
- || bfd_get_mach (abfd) == bfd_mach_h8300s)
+ /* FIXME: h8300hn? */
+ || bfd_get_mach (abfd) == bfd_mach_h8300s
+ /* FIXME: h8300sn? */
+ || bfd_get_mach (abfd) == bfd_mach_h8300sx)
&& value >= 0xffff00
&& value <= 0xffffff))
{
&& value >= 0xff00
&& value <= 0xffff)
|| ((bfd_get_mach (abfd) == bfd_mach_h8300h
- || bfd_get_mach (abfd) == bfd_mach_h8300s)
+ /* FIXME: h8300hn? */
+ || bfd_get_mach (abfd) == bfd_mach_h8300s
+ /* FIXME: h8300sn? */
+ || bfd_get_mach (abfd) == bfd_mach_h8300sx)
&& value >= 0xffff00
&& value <= 0xffffff))
{
static bfd_byte *
elf32_h8_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;
/* 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;