* config/tc-mips.c (nopic_need_relax): Allow for the
authorGeoffrey Keating <geoffk@geoffk.org>
Tue, 28 Sep 1999 04:13:25 +0000 (04:13 +0000)
committerGeoffrey Keating <geoffk@geoffk.org>
Tue, 28 Sep 1999 04:13:25 +0000 (04:13 +0000)
.sdata.foo sections generated by -fdata-sections,
and for the .gnu.linkonce.s sections generated by C++.

gas/ChangeLog
gas/config/tc-mips.c

index c45b43c22b4f4a165559477670e8503c2c16b51e..ac219fce1cab83b78b290da75f2df4c40ca1a391 100644 (file)
@@ -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
index 3df6adf1c4e81ae966f0d812e333ec28db54cf4c..e67b99f21261404ccc7a7eb941f416b6c3ae1052 100644 (file)
@@ -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;
     }