LIB1ASMSRC = arm/lib1funcs.asm # For most CPUs we have an assembly soft-float implementations. # However this is not true for ARMv6M. Here we want to use the soft-fp C # implementation. The soft-fp code is only build for ARMv6M. This pulls # in the asm implementation for other CPUs. LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \ _call_via_rX _interwork_call_via_rX \ _lshrdi3 _ashrdi3 _ashldi3 \ _arm_negdf2 _arm_addsubdf3 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ _arm_fixdfsi _arm_fixunsdfsi \ _arm_truncdfsf2 _arm_negsf2 _arm_addsubsf3 _arm_muldivsf3 \ _arm_cmpsf2 _arm_unordsf2 _arm_fixsfsi _arm_fixunssfsi \ _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf MULTILIB_OPTIONS = mthumb MULTILIB_DIRNAMES = thumb MULTILIB_EXCEPTIONS = MULTILIB_MATCHES = MULTILIB_OPTIONS += march=armv7 MULTILIB_DIRNAMES += thumb2 MULTILIB_EXCEPTIONS += march=armv7* MULTILIB_MATCHES += march?armv7=march?armv7a MULTILIB_MATCHES += march?armv7=march?armv7r MULTILIB_MATCHES += march?armv7=march?armv7m MULTILIB_MATCHES += march?armv7=march?armv7-a MULTILIB_MATCHES += march?armv7=march?armv7-r MULTILIB_MATCHES += march?armv7=march?armv7-m MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 MULTILIB_EXCEPTIONS += *mthumb/*mcpu?marvell-f* # As of at least 4.2, gcc passes the wrong -L options if some multilibs are # omitted from MULTILIB_OSDIRNAMES MULTILIB_OSDIRNAMES = mthumb=!thumb MULTILIB_OSDIRNAMES += mthumb/march.armv7=!thumb2 # MULTILIB_OPTIONS += mcpu=ep9312 # MULTILIB_DIRNAMES += ep9312 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* # # MULTILIB_OPTIONS += mlittle-endian/mbig-endian # MULTILIB_DIRNAMES += le be # MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle # # MULTILIB_OPTIONS += mhard-float/msoft-float # MULTILIB_DIRNAMES += fpu soft # MULTILIB_EXCEPTIONS += *mthumb/*mhard-float* # # MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork # MULTILIB_DIRNAMES += normal interwork # # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore # MULTILIB_DIRNAMES += elf under # # MULTILIB_OPTIONS += mcpu=arm7 # MULTILIB_DIRNAMES += nofmult # MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7* # # Note: the multilib_exceptions matches both -mthumb and # # -mthumb-interwork # # # # We have to match all the arm cpu variants which do not have the # # multiply instruction and treat them as if the user had specified # # -mcpu=arm7. Note that in the following the ? is interpreted as # # an = for the purposes of matching command line options. # # FIXME: There ought to be a better way to do this. # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610 # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620 EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o # If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here # EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somewhere in GCC's alias analysis # or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -fno-inline # Assemble startup files. $(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \ -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm $(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm