diff options
author | Richard Henderson <rth@twiddle.net> | 2014-04-21 08:14:18 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2014-04-21 08:14:18 -0700 |
commit | d1c109de72f880ea2a761fccb41f330672674fd9 (patch) | |
tree | db6a544f157d14f9ef7048598df7a80334c5ec42 /ld | |
parent | cc75d373fdb9668f367959f99f0b67e056a6c18a (diff) | |
download | gdb-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')
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/emultempl/alphaelf.em | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 7d0e63c..94380cc 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2014-04-21 Richard Henderson <rth@redhat.com> + + * emultempl/alphaelf.em (alpha_after_parse): Enable 2 relax passes. + 2014-04-16 Steve Ellcey <sellcey@mips.com> * emultempl/elf32.em: Include safe-ctype.h. 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 ('+', |