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) */