goto error_return;
/* Fake a STT_GNU_IFUNC symbol. */
+ h->root.root.string = bfd_elf_sym_name (abfd, symtab_hdr,
+ isym, NULL);
h->type = STT_GNU_IFUNC;
h->def_regular = 1;
h->ref_regular = 1;
else if (h->type == STT_GNU_IFUNC
&& bfd_link_pic (info))
{
- if (isym == NULL)
- name = h->root.root.string;
- else
- name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
- NULL);
- _bfd_error_handler
- /* xgettext:c-format */
- (_("%B: unsupported non-PIC call to IFUNC `%s'"),
- abfd, name);
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%B: unsupported non-PIC call to IFUNC `%s'"),
+ abfd, h->root.root.string);
bfd_set_error (bfd_error_bad_value);
goto error_return;
}
|| h->forced_local
|| bfd_link_executable (info))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
/* This symbol is resolved locally. */
outrel.r_info = ELF32_R_INFO (0, R_386_IRELATIVE);
bfd_put_32 (output_bfd,
&& h->def_regular
&& h->type == STT_GNU_IFUNC))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
/* If an STT_GNU_IFUNC symbol is locally defined, generate
R_386_IRELATIVE instead of R_386_JUMP_SLOT. Store addend
in the .got.plt section. */
}
if (SYMBOL_REFERENCES_LOCAL (info, h))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
bfd_put_32 (output_bfd,
(h->root.u.def.value
+ h->root.u.def.section->output_section->vma
goto error_return;
/* Fake a STT_GNU_IFUNC symbol. */
+ h->root.root.string = bfd_elf_sym_name (abfd, symtab_hdr,
+ isym, NULL);
h->type = STT_GNU_IFUNC;
h->def_regular = 1;
h->ref_regular = 1;
|| h->forced_local
|| bfd_link_executable (info))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
/* This symbol is resolved locally. */
outrel.r_info = htab->r_info (0, R_X86_64_IRELATIVE);
outrel.r_addend = (h->root.u.def.value
&& h->def_regular
&& h->type == STT_GNU_IFUNC))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
/* If an STT_GNU_IFUNC symbol is locally defined, generate
R_X86_64_IRELATIVE instead of R_X86_64_JUMP_SLOT. */
rela.r_info = htab->r_info (0, R_X86_64_IRELATIVE);
}
if (SYMBOL_REFERENCES_LOCAL (info, h))
{
+ info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+ output_bfd,
+ h->root.root.string,
+ h->root.u.def.section->owner);
+
rela.r_info = htab->r_info (0,
R_X86_64_IRELATIVE);
rela.r_addend = (h->root.u.def.value