aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-04-21 15:43:00 +0100
committerNick Clifton <nickc@redhat.com>2016-04-21 15:43:00 +0100
commit4f3b23b390640efdc36c575dbda2175e61154bc9 (patch)
treeb6b86755f91753a236e53eb4719a6dae7ac4a6ee /ld/ldlang.c
parent71829b1a3f9b4825150747b138b5cfadf0c5fcba (diff)
downloadgdb-4f3b23b390640efdc36c575dbda2175e61154bc9.zip
gdb-4f3b23b390640efdc36c575dbda2175e61154bc9.tar.gz
gdb-4f3b23b390640efdc36c575dbda2175e61154bc9.tar.bz2
Add support for non-ELF targets to check their relocs.
bfd * aout-adobe.c: Use _bfd_generic_link_check_relocs. * aout-target.h: Likewise. * aout-tic30.c: Likewise. * binary.c: Likewise. * bout.c: Likewise. * coff-alpha.c: Likewise. * coff-rs6000.c: Likewise. * coff64-rs6000.c: Likewise. * coffcode.h: Likewise. * i386msdos.c: Likewise. * i386os9k.c: Likewise. * ieee.c: Likewise. * ihex.c: Likewise. * libbfd-in.h: Likewise. * libecoff.h: Likewise. * mach-o-target.c: Likewise. * mmo.c: Likewise. * nlm-target.h: Likewise. * oasys.c: Likewise. * pef.c: Likewise. * plugin.c: Likewise. * ppcboot.c: Likewise. * som.c: Likewise. * srec.c: Likewise. * tekhex.c: Likewise. * versados.c: Likewise. * vms-alpha.c: Likewise. * xsym.c: Likewise. * elfxx-target.h: Use _bfd_elf_link_check_relocs. * linker.c (bfd_link_check_relocs): New function. (_bfd_generic_link_check_relocs): New function. * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of _bfd_link_check_relocs field. (struct bfd_target)L Add _bfd_link_check_relocs field. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. ld * ldlang.c (lang_check_relocs): Use bfd_link_check_relocs in prefernce to _bfd_elf_link_check_relocs. Drop test for ELF targets. Do not stop the checks when problems are encountered. include * bfdlink.h: Add prototype for bfd_link_check_relocs.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r--ld/ldlang.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 2ae3640..96947da 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -6783,18 +6783,19 @@ lang_add_gc_name (const char * name)
static void
lang_check_relocs (void)
{
- if (link_info.check_relocs_after_open_input
- && bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour)
+ if (link_info.check_relocs_after_open_input)
{
bfd *abfd;
for (abfd = link_info.input_bfds;
abfd != (bfd *) NULL; abfd = abfd->link.next)
- if (!_bfd_elf_link_check_relocs (abfd, &link_info))
+ if (!bfd_link_check_relocs (abfd, &link_info))
{
- /* no object output, fail return */
+ /* No object output, fail return. */
config.make_executable = FALSE;
- break;
+ /* Note: we do not abort the loop, but rather
+ continue the scan in case there are other
+ bad relocations to report. */
}
}
}