diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-11-05 10:29:44 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-11-05 10:29:44 -0800 |
commit | 62d887d4067efbc5b757e03b0fa54f2a4c81befa (patch) | |
tree | 6b408c41478f4a90c8863ebcd39646dcf787e5c5 /bfd/elf-bfd.h | |
parent | 8db49cc2de52033990ae5d4d6aacedc8f986e803 (diff) | |
download | gdb-62d887d4067efbc5b757e03b0fa54f2a4c81befa.zip gdb-62d887d4067efbc5b757e03b0fa54f2a4c81befa.tar.gz gdb-62d887d4067efbc5b757e03b0fa54f2a4c81befa.tar.bz2 |
Pass ignored unresolved relocations to ld backend
bfd/
PR ld/4409
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add an argument for
error ignored.
* elf-m10200.c (mn10200_elf_relocate_section): Updated.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elf32-arm.c (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
(bfin_relocate_section): Likewise.
* elf32-cr16.c (elf32_cr16_relocate_section): Likewise.
* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-crx.c (elf32_crx_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-epiphany.c (epiphany_elf_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
* elf32-lm32.c (lm32_elf_relocate_section): Likewise.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-metag.c (elf_metag_relocate_section): Likewise.
* elf32-microblaze.c (microblaze_elf_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mep.c (mep_elf_relocate_section): Likewise.
* elf32-moxie.c (moxie_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-mt.c (mt_elf_relocate_section): Likewise.
* elf32-nios2.c (nios2_elf32_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-rl78.c (rl78_elf_relocate_section): Likewise.
* elf32-rx.c (rx_elf_relocate_section): Likewise.
* elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
* elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-ia64-vms.c (elf64_ia64_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
* elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Likewise.
* elfnn-ia64.c (elfNN_ia64_relocate_section): Skip if error
from RELOC_FOR_GLOBAL_SYMBOL in executable is ignored.
ld/testsuite/
PR ld/4409
* ld-ia64/error1.d: New file.
* ld-ia64/error1.s: Likewise.
* ld-ia64/error2.d: Likewise.
* ld-ia64/error3.d: Likewise.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index add80b3..15dab94 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -2414,7 +2414,7 @@ extern asection _bfd_elf_large_com_section; #define RELOC_FOR_GLOBAL_SYMBOL(info, input_bfd, input_section, rel, \ r_symndx, symtab_hdr, sym_hashes, \ h, sec, relocation, \ - unresolved_reloc, warned) \ + unresolved_reloc, warned, ignored) \ do \ { \ /* It seems this can happen with erroneous or unsupported \ @@ -2429,6 +2429,7 @@ extern asection _bfd_elf_large_com_section; h = (struct elf_link_hash_entry *) h->root.u.i.link; \ \ warned = FALSE; \ + ignored = FALSE; \ unresolved_reloc = FALSE; \ relocation = 0; \ if (h->root.type == bfd_link_hash_defined \ @@ -2451,7 +2452,7 @@ extern asection _bfd_elf_large_com_section; ; \ else if (info->unresolved_syms_in_objects == RM_IGNORE \ && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) \ - ; \ + ignored = TRUE; \ else if (!info->relocatable) \ { \ bfd_boolean err; \ @@ -2467,6 +2468,7 @@ extern asection _bfd_elf_large_com_section; } \ (void) unresolved_reloc; \ (void) warned; \ + (void) ignored; \ } \ while (0) |