aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-04-21 08:14:18 -0700
committerRichard Henderson <rth@twiddle.net>2014-04-21 08:14:18 -0700
commitd1c109de72f880ea2a761fccb41f330672674fd9 (patch)
treedb6a544f157d14f9ef7048598df7a80334c5ec42 /ld/emultempl
parentcc75d373fdb9668f367959f99f0b67e056a6c18a (diff)
downloadgdb-d1c109de72f880ea2a761fccb41f330672674fd9.zip
gdb-d1c109de72f880ea2a761fccb41f330672674fd9.tar.gz
gdb-d1c109de72f880ea2a761fccb41f330672674fd9.tar.bz2
Fix alpha-elf relaxation
ld/ * emultempl/alphaelf.em (alpha_after_parse): Enable 2 relax passes. bfd/ * elf64-alpha.c (elf64_alpha_size_got_sections): New may_merge parameter; honor it and disable got merging when false. (elf64_alpha_relax_got_load): Do not relax to GPREL relocs during the first pass of relaxation. (elf64_alpha_relax_with_lituse): Likewise. Move relaxed relocs to the end of the LITERAL+LITUSE chain. (elf64_alpha_relax_section): Only process LITERAL relocs during the second pass of relaxation.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/alphaelf.em1
1 files changed, 1 insertions, 0 deletions
diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em
index 091ef66..a36fc7d 100644
--- a/ld/emultempl/alphaelf.em
+++ b/ld/emultempl/alphaelf.em
@@ -72,6 +72,7 @@ alpha_after_open (void)
static void
alpha_after_parse (void)
{
+ link_info.relax_pass = 2;
if (limit_32bit && !link_info.shared && !link_info.relocatable)
lang_section_start (".interp",
exp_binop ('+',