aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2010-01-14 02:42:20 +0000
committerDoug Kwan <dougkwan@google.com>2010-01-14 02:42:20 +0000
commitb521dfe453f0590a99375d060a1e0a6f2fa9afec (patch)
treedefd8004c357d719cba34be7fa20b27efbb7d64a /gold
parentcbe13f1d2e0f309d54106d120016e0f72d7bbf87 (diff)
downloadgdb-b521dfe453f0590a99375d060a1e0a6f2fa9afec.zip
gdb-b521dfe453f0590a99375d060a1e0a6f2fa9afec.tar.gz
gdb-b521dfe453f0590a99375d060a1e0a6f2fa9afec.tar.bz2
2010-01-13 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relobj::section_needs_reloc_stub_scanning, Arm_relobj::scan_sections_for_stubs): Rearrange code to avoid an apparent compiler problem of not folding static constant integral data members of elfcpp::Elf_sizes<32>.
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog7
-rw-r--r--gold/arm.cc16
2 files changed, 17 insertions, 6 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 32d7fb7..c6d0c16 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,6 +1,13 @@
2010-01-13 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relobj::section_needs_reloc_stub_scanning,
+ Arm_relobj::scan_sections_for_stubs): Rearrange code to avoid an
+ apparent compiler problem of not folding static constant integral
+ data members of elfcpp::Elf_sizes<32>.
+
+2010-01-13 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj::section_needs_reloc_stub_scanning,
Arm_relobj::section_needs_cortex_a8_stub_scanning,
Arm_relobj::scan_section_for_cortex_a8_erratum,
Arm_relobj::scan_span_for_cortex_a8_erratum): New methods.
diff --git a/gold/arm.cc b/gold/arm.cc
index c9ea2fd..38f9d71 100644
--- a/gold/arm.cc
+++ b/gold/arm.cc
@@ -4203,9 +4203,11 @@ Arm_relobj<big_endian>::section_needs_reloc_stub_scanning(
if (this->adjust_shndx(shdr.get_sh_link()) != this->symtab_shndx())
return false;
- const unsigned int reloc_size = (sh_type == elfcpp::SHT_REL
- ? elfcpp::Elf_sizes<32>::rel_size
- : elfcpp::Elf_sizes<32>::rela_size);
+ unsigned int reloc_size;
+ if (sh_type == elfcpp::SHT_REL)
+ reloc_size = elfcpp::Elf_sizes<32>::rel_size;
+ else
+ reloc_size = elfcpp::Elf_sizes<32>::rela_size;
// Ignore reloc section with unexpected entsize or uneven size.
// The error will be reported in the final link.
@@ -4380,9 +4382,11 @@ Arm_relobj<big_endian>::scan_sections_for_stubs(
relinfo.reloc_shndx = i;
relinfo.data_shndx = index;
unsigned int sh_type = shdr.get_sh_type();
- const unsigned int reloc_size = (sh_type == elfcpp::SHT_REL
- ? elfcpp::Elf_sizes<32>::rel_size
- : elfcpp::Elf_sizes<32>::rela_size);
+ unsigned int reloc_size;
+ if (sh_type == elfcpp::SHT_REL)
+ reloc_size = elfcpp::Elf_sizes<32>::rel_size;
+ else
+ reloc_size = elfcpp::Elf_sizes<32>::rela_size;
Output_section* os = out_sections[index];
arm_target->scan_section_for_stubs(&relinfo, sh_type, prelocs,