diff --git a/lib/libcompiler_rt/Makefile.inc b/lib/libcompiler_rt/Makefile.inc index 248f182cee57..dcacce3e2619 100644 --- a/lib/libcompiler_rt/Makefile.inc +++ b/lib/libcompiler_rt/Makefile.inc @@ -143,6 +143,14 @@ SRCF+= floatundixf SRCF+= cpu_model .endif +# The fp_mode implementation for amd64 and i386 is shared, while other +# architectures use the regular approach. +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" +SRCS+= i386/fp_mode.c +.else +SRCF+= fp_mode +.endif + # # 128-bit quad precision long double support, # only used on some architectures. @@ -205,14 +213,12 @@ CFLAGS+= -DEMIT_SYNC_ATOMICS SRCF+= stdatomic .endif - .if "${COMPILER_TYPE}" == "clang" && \ (${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe") SRCS+= atomic.c CFLAGS.atomic.c+= -Wno-atomic-alignment .endif - .for file in ${SRCF} .if ${MACHINE_ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") \ && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S)