This libgcc patch is the second of two patches needed to build GCC soft-float
multilibs when using the latest binutils.  It skips assembling any of the code
in mips16.S when in soft-float mode because the code is not used when in
soft-float mode and because doing so generates errors during assembly (due to
using floating point registers in soft-float mode).

Tested with the mips-mti-linux-gnu toolchain.

Steve Ellcey
sell...@mips.com


2014-08-08  Steve Ellcey  <sell...@mips.com>

        * config/mips/mips16.S:  Skip when __mips_soft_float is defined.


diff --git a/libgcc/config/mips/mips16.S b/libgcc/config/mips/mips16.S
index 6a43a98..150a23a 100644
--- a/libgcc/config/mips/mips16.S
+++ b/libgcc/config/mips/mips16.S
@@ -21,7 +21,7 @@ a copy of the GCC Runtime Library Exception along with this 
program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#ifdef __mips_micromips
+#if defined(__mips_micromips) || defined(__mips_soft_float)
   /* DO NOTHING */
 #else
 
@@ -749,4 +749,4 @@ CALL_STUB_RET (__mips16_call_stub_dc_10, 10, DC)
 #endif /* !__mips_single_float */
 
 #endif
-#endif /* __mips_micromips */
+#endif /* defined(__mips_micromips) || defined(__mips_soft_float) */

Reply via email to