summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2011-05-31 04:26:49 +0000
committerIan Lance Taylor <ian@airs.com>2011-05-31 04:26:49 +0000
commit8dbe1edcd323bb950802a9fb3286bb780d9c0d7f (patch)
tree8b0bbf58f705ef98a9ac89f6b9e79a56dffbd530
parent9ad61fd62f5d45db978e65304a3a2963dc0c2910 (diff)
downloadbinutils-gdb-8dbe1edcd323bb950802a9fb3286bb780d9c0d7f.tar.gz
* reloc.cc (Sized_relobj_file::do_read_relocs): Ignore empty reloc
sections.
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/reloc.cc3
2 files changed, 8 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index ba1e407685a..08429b72cc4 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-30 Ian Lance Taylor <iant@google.com>
+
+ * reloc.cc (Sized_relobj_file::do_read_relocs): Ignore empty reloc
+ sections.
+
2011-05-29 Ian Lance Taylor <iant@google.com>
PR gold/12804
diff --git a/gold/reloc.cc b/gold/reloc.cc
index 97ed33715a7..dacab35f672 100644
--- a/gold/reloc.cc
+++ b/gold/reloc.cc
@@ -322,6 +322,9 @@ Sized_relobj_file<size, big_endian>::do_read_relocs(Read_relocs_data* rd)
off_t sh_size = shdr.get_sh_size();
+ if (sh_size == 0)
+ continue;
+
unsigned int reloc_size;
if (sh_type == elfcpp::SHT_REL)
reloc_size = elfcpp::Elf_sizes<size>::rel_size;