aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-11-17 04:09:12 -0800
committerH.J. Lu <hjl.tools@gmail.com>2017-11-17 04:09:12 -0800
commit2c244f9b0935e577d7c20bb5706e27438e48227f (patch)
tree94855c94f1ec6537fcf999cc79d15e692c9768cc
parent6a6196fc71467e39e9009d6306ef13de008c6fe3 (diff)
downloadgdb-2c244f9b0935e577d7c20bb5706e27438e48227f.zip
gdb-2c244f9b0935e577d7c20bb5706e27438e48227f.tar.gz
gdb-2c244f9b0935e577d7c20bb5706e27438e48227f.tar.bz2
x86: Pass "%F%P:" to linker callback in case of error
We should pass "%F%P:" to linker callback in case of error. Otherwise, linker will report: : failed to create GNU property section * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Pass "%F%P:", instead of "%F:", to linker callback in case of error.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elfxx-x86.c20
2 files changed, 15 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8ac7765..d2ad3d3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Pass
+ "%F%P:", instead of "%F:", to linker callback in case of error.
+
2017-11-16 Nick Clifton <nickc@redhat.com>
PR 22421
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index df21d4e..e58e3d0 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2401,7 +2401,7 @@ _bfd_x86_elf_link_setup_gnu_properties
| SEC_HAS_CONTENTS
| SEC_DATA));
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create GNU property section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
if (!bfd_set_section_alignment (ebfd, sec, class_align))
{
@@ -2556,7 +2556,7 @@ error_alignment:
&& !elf_vxworks_create_dynamic_sections (dynobj, info,
&htab->srelplt2))
{
- info->callbacks->einfo (_("%F: failed to create VxWorks dynamic sections\n"));
+ info->callbacks->einfo (_("%F%P: failed to create VxWorks dynamic sections\n"));
return pbfd;
}
@@ -2565,7 +2565,7 @@ error_alignment:
don't need to do it in check_relocs. */
if (htab->elf.sgot == NULL
&& !_bfd_elf_create_got_section (dynobj, info))
- info->callbacks->einfo (_("%F: failed to create GOT sections\n"));
+ info->callbacks->einfo (_("%F%P: failed to create GOT sections\n"));
got_align = (bed->target_id == X86_64_ELF_DATA) ? 3 : 2;
@@ -2583,7 +2583,7 @@ error_alignment:
/* Create the ifunc sections here so that check_relocs can be
simplified. */
if (!_bfd_elf_create_ifunc_sections (dynobj, info))
- info->callbacks->einfo (_("%F: failed to create ifunc sections\n"));
+ info->callbacks->einfo (_("%F%P: failed to create ifunc sections\n"));
plt_alignment = bfd_log2 (htab->plt.plt_entry_size);
@@ -2624,7 +2624,7 @@ error_alignment:
".plt.got",
pltflags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create GOT PLT section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create GOT PLT section\n"));
if (!bfd_set_section_alignment (dynobj, sec,
non_lazy_plt_alignment))
@@ -2645,7 +2645,7 @@ error_alignment:
".plt.sec",
pltflags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create IBT-enabled PLT section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create IBT-enabled PLT section\n"));
if (!bfd_set_section_alignment (dynobj, sec,
plt_alignment))
@@ -2660,7 +2660,7 @@ error_alignment:
".plt.sec",
pltflags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create BND PLT section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create BND PLT section\n"));
if (!bfd_set_section_alignment (dynobj, sec,
non_lazy_plt_alignment))
@@ -2681,7 +2681,7 @@ error_alignment:
".eh_frame",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create PLT .eh_frame section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create PLT .eh_frame section\n"));
if (!bfd_set_section_alignment (dynobj, sec, class_align))
goto error_alignment;
@@ -2694,7 +2694,7 @@ error_alignment:
".eh_frame",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create GOT PLT .eh_frame section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create GOT PLT .eh_frame section\n"));
if (!bfd_set_section_alignment (dynobj, sec, class_align))
goto error_alignment;
@@ -2708,7 +2708,7 @@ error_alignment:
".eh_frame",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F: failed to create the second PLT .eh_frame section\n"));
+ info->callbacks->einfo (_("%F%P: failed to create the second PLT .eh_frame section\n"));
if (!bfd_set_section_alignment (dynobj, sec, class_align))
goto error_alignment;