aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2017-01-09 09:22:33 +0000
committerNick Clifton <nickc@redhat.com>2017-01-09 09:22:33 +0000
commit011561117eeaff00862eb5f465c3470f29e8a9a9 (patch)
tree4990224deb802c8e86ffe356cab713aa4bde8087
parent3254d32c4b47f17a7d609f25394fbfb2313f09ff (diff)
downloadgdb-011561117eeaff00862eb5f465c3470f29e8a9a9.zip
gdb-011561117eeaff00862eb5f465c3470f29e8a9a9.tar.gz
gdb-011561117eeaff00862eb5f465c3470f29e8a9a9.tar.bz2
RISC-V/GAS: Correct branch relaxation for weak symbols.
* config/tc-riscv.c (relaxed_branch_length): Use the long sequence when the target is a weak symbol.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-riscv.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c93a61b..00f6d1a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2017-01-09 Andrew Waterman <andrew@sifive.com>
+
+ * config/tc-riscv.c (relaxed_branch_length): Use the long
+ sequence when the target is a weak symbol.
+
2017-01-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
* config/tc-aarch64.c (aarch64_features): Add rcpc.
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 1f61730..b8da6ce 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -360,6 +360,7 @@ relaxed_branch_length (fragS *fragp, asection *sec, int update)
if (fragp->fr_symbol != NULL
&& S_IS_DEFINED (fragp->fr_symbol)
+ && !S_IS_WEAK (fragp->fr_symbol)
&& sec == S_GET_SEGMENT (fragp->fr_symbol))
{
offsetT val = S_GET_VALUE (fragp->fr_symbol) + fragp->fr_offset;