aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-06-29 21:54:44 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-06-29 21:54:44 +0000
commita040981f6272e74d8157108e1677bc4d13425cd0 (patch)
tree9a3d9e53eb3d92742c8227ff408748aae7acad5a /bfd
parentd5abbdf3c1a08ac490b0abd9aa026a9e02952782 (diff)
downloadgdb-a040981f6272e74d8157108e1677bc4d13425cd0.zip
gdb-a040981f6272e74d8157108e1677bc4d13425cd0.tar.gz
gdb-a040981f6272e74d8157108e1677bc4d13425cd0.tar.bz2
Return FALSE on unresolvable relocation
* elf64-x86-64.c (elf_x86_64_relocate_section): Return FALSE on unresolvable relocation.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-x86-64.c17
2 files changed, 15 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9ea3a1e..921e679 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2012-06-29 H.J. Lu <hongjiu.lu@intel.com>
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Return FALSE
+ on unresolvable relocation.
+
+2012-06-29 H.J. Lu <hongjiu.lu@intel.com>
+
* archive.c (_bfd_compute_and_write_armap): Simplify global
symbol handling.
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 03cd2f3..a29ba8a 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -4210,13 +4210,16 @@ elf_x86_64_relocate_section (bfd *output_bfd,
&& h->def_dynamic)
&& _bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset) != (bfd_vma) -1)
- (*_bfd_error_handler)
- (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
- input_bfd,
- input_section,
- (long) rel->r_offset,
- howto->name,
- h->root.root.string);
+ {
+ (*_bfd_error_handler)
+ (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+ input_bfd,
+ input_section,
+ (long) rel->r_offset,
+ howto->name,
+ h->root.root.string);
+ return FALSE;
+ }
do_relocation:
r = _bfd_final_link_relocate (howto, input_bfd, input_section,