From 91e91013682f15b1616e905c98bfdc29f9a116d7 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Tue, 28 Sep 1999 04:13:25 +0000 Subject: [PATCH] * 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++. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index c45b43c22b..ac219fce1c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +Tue Sep 28 14:06:44 1999 Geoffrey Keating + + * 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 * 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 3df6adf1c4..e67b99f212 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; } -- 2.11.0