+2014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
+ Mark Wielaard <mjw@redhat.com>
+
+ * ppc64_init.c (ppc64_init): Hook check_st_other_bits.
+ * ppc64_reloc.def: TLSGD, TLSLD, TOCSAVE, ADDR16_HIGH, ADDR16_HIGHA,
+ TPREL16_HIGH, TPREL16_HIGHA, DTPREL16_HIGH, DTPREL16_HIGHA, JMP_IREL,
+ IRELATIVE, REL16, REL16_LO, REL16_HI and REL16_HA.
+ * ppc64_symbol.c (ppc64_dynamic_tag_name): Recognize DT_PPC64_OPT.
+ (ppc64_dynamic_tag_check): Likewise.
+ (ppc64_check_st_other_bits): New function.
+
2014-07-04 Mark Wielaard <mjw@redhat.com>
* aarch64_retval.c (aarch64_return_value_location): Handle
HOOK (eh, machine_flag_check);
HOOK (eh, copy_reloc_p);
HOOK (eh, check_special_symbol);
+ HOOK (eh, check_st_other_bits);
HOOK (eh, bss_plt_p);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
RELOC_TYPE (DTPREL16_HIGHERA, REL)
RELOC_TYPE (DTPREL16_HIGHEST, REL)
RELOC_TYPE (DTPREL16_HIGHESTA, REL)
+RELOC_TYPE (TLSGD, REL)
+RELOC_TYPE (TLSLD, REL)
+RELOC_TYPE (TOCSAVE, REL)
+RELOC_TYPE (ADDR16_HIGH, REL)
+RELOC_TYPE (ADDR16_HIGHA, REL)
+RELOC_TYPE (TPREL16_HIGH, REL)
+RELOC_TYPE (TPREL16_HIGHA, REL)
+RELOC_TYPE (DTPREL16_HIGH, REL)
+RELOC_TYPE (DTPREL16_HIGHA, REL)
+RELOC_TYPE (JMP_IREL, REL)
+RELOC_TYPE (IRELATIVE, REL)
+RELOC_TYPE (REL16, REL)
+RELOC_TYPE (REL16_LO, REL)
+RELOC_TYPE (REL16_HI, REL)
+RELOC_TYPE (REL16_HA, REL)
/* Notes from Alan Modra:
return "PPC64_OPD";
case DT_PPC64_OPDSZ:
return "PPC64_OPDSZ";
+ case DT_PPC64_OPT:
+ return "PPC64_OPT";
default:
break;
}
{
return (tag == DT_PPC64_GLINK
|| tag == DT_PPC64_OPD
- || tag == DT_PPC64_OPDSZ);
+ || tag == DT_PPC64_OPDSZ
+ || tag == DT_PPC64_OPT);
}
{
return flags == 0 || flags == 1 || flags == 2;
}
+
+bool
+ppc64_check_st_other_bits (unsigned char st_other)
+{
+ return (PPC64_LOCAL_ENTRY_OFFSET (st_other) != 0);
+}
+2014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
+ Mark Wielaard <mjw@redhat.com>
+
+ * elflint (check_symtab): Add ".TOC." to the list of possibly
+ dangling symbols because of sourceware PR13621.
+
2014-06-14 Mark Wielaard <mjw@redhat.com>
* elflint (check_symtab): Use ebl_func_addr_mask on st_value.
&& strcmp (name, "__fini_array_end") != 0
&& strcmp (name, "__bss_start") != 0
&& strcmp (name, "__bss_start__") != 0
- && strcmp (name, "__TMC_END__") != 0))
+ && strcmp (name, "__TMC_END__") != 0
+ && strcmp (name, ".TOC.") != 0))
ERROR (gettext ("\
section [%2d] '%s': symbol %zu: st_value out of bounds\n"),
idx, section_name (ebl, idx), cnt);