aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@geoffk.org>1999-09-28 04:13:25 +0000
committerGeoffrey Keating <geoffk@geoffk.org>1999-09-28 04:13:25 +0000
commitfba2b7f93ec2bd58fc9fe390d112575b69516347 (patch)
tree1dc46e95fb88d55b65a8e160b2c11eba0916db6e
parentd02f29adb2b49fd2dfa8451e8a37b3d568b7e90c (diff)
downloadgdb-fba2b7f93ec2bd58fc9fe390d112575b69516347.zip
gdb-fba2b7f93ec2bd58fc9fe390d112575b69516347.tar.gz
gdb-fba2b7f93ec2bd58fc9fe390d112575b69516347.tar.bz2
* config/tc-mips.c (nopic_need_relax): Allow for the
.sdata.foo sections generated by -fdata-sections, and for the .gnu.linkonce.s sections generated by C++.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c9
2 files changed, 12 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c45b43c..ac219fc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+Tue Sep 28 14:06:44 1999 Geoffrey Keating <geoffk@cygnus.com>
+
+ * config/tc-mips.c (nopic_need_relax): Allow for the
+ .sdata.foo sections generated by -fdata-sections,
+ and for the .gnu.linkonce.s sections generated by C++.
+
Thu Sep 23 07:13:45 1999 Jerry Quinn <jquinn@nortelnetworks.com>
* config/tc-hppa.c (pa_ip): Replace 'B', 'M', 'l' and 'g' handling
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 3df6adf..e67b99f 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -294,8 +294,9 @@ static int g_switch_seen = 0;
better.
This function can only provide a guess, but it seems to work for
- gcc output. If it guesses wrong, the only loss should be in
- efficiency; it shouldn't introduce any bugs.
+ gcc output. It needs to guess right for gcc, otherwise gcc
+ will put what it thinks is a GP-relative instruction in a branch
+ delay slot.
I don't know if a fix is needed for the SVR4_PIC mode. I've only
fixed it for the non-PIC mode. KR 95/04/07 */
@@ -10625,7 +10626,9 @@ nopic_need_relax (sym, before_relaxing)
assert (strcmp (segname, ".lit8") != 0
&& strcmp (segname, ".lit4") != 0);
change = (strcmp (segname, ".sdata") != 0
- && strcmp (segname, ".sbss") != 0);
+ && strcmp (segname, ".sbss") != 0
+ && strncmp (segname, ".sdata.", 7) != 0
+ && strncmp (segname, ".gnu.linkonce.s.", 16) != 0);
}
return change;
}