summaryrefslogtreecommitdiffstats
path: root/lib/libcompiler_rt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcompiler_rt')
-rw-r--r--lib/libcompiler_rt/Makefile242
-rw-r--r--lib/libcompiler_rt/Makefile.depend12
2 files changed, 254 insertions, 0 deletions
diff --git a/lib/libcompiler_rt/Makefile b/lib/libcompiler_rt/Makefile
new file mode 100644
index 0000000..dae1624
--- /dev/null
+++ b/lib/libcompiler_rt/Makefile
@@ -0,0 +1,242 @@
+# $FreeBSD$
+
+.include <src.opts.mk>
+
+LIB= compiler_rt
+NO_PIC=
+WARNS?= 2
+
+CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN
+CFLAGS+=-I${.CURDIR}/../../contrib/libcxxrt
+
+.if ${MACHINE_CPUARCH} == "amd64"
+CRTARCH=x86_64
+.else
+CRTARCH=${MACHINE_CPUARCH}
+.endif
+
+CRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib/builtins
+
+.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC}
+
+SRCF= absvdi2 \
+ absvsi2 \
+ absvti2 \
+ addvdi3 \
+ addvsi3 \
+ addvti3 \
+ apple_versioning \
+ ashldi3 \
+ ashlti3 \
+ ashrdi3 \
+ ashrti3 \
+ clear_cache \
+ clzdi2 \
+ clzsi2 \
+ clzti2 \
+ cmpdi2 \
+ cmpti2 \
+ ctzdi2 \
+ ctzsi2 \
+ ctzti2 \
+ divdc3 \
+ divdi3 \
+ divmoddi4 \
+ divmodsi4 \
+ divsc3 \
+ divti3 \
+ divxc3 \
+ enable_execute_stack \
+ eprintf \
+ extendhfsf2 \
+ ffsdi2 \
+ ffsti2 \
+ fixdfdi \
+ fixdfti \
+ fixsfdi \
+ fixsfti \
+ fixunsdfdi \
+ fixunsdfsi \
+ fixunsdfti \
+ fixunssfdi \
+ fixunssfsi \
+ fixunssfti \
+ fixunsxfdi \
+ fixunsxfsi \
+ fixunsxfti \
+ fixxfdi \
+ fixxfti \
+ floatdidf \
+ floatdisf \
+ floatditf \
+ floatdixf \
+ floatsitf \
+ floattidf \
+ floattisf \
+ floattixf \
+ floatundidf \
+ floatundisf \
+ floatunditf \
+ floatundixf \
+ floatunsidf \
+ floatunsisf \
+ floatuntidf \
+ floatuntisf \
+ floatuntixf \
+ gcc_personality_v0 \
+ int_util \
+ lshrdi3 \
+ lshrti3 \
+ moddi3 \
+ modti3 \
+ muldc3 \
+ muldi3 \
+ mulodi4 \
+ mulosi4 \
+ muloti4 \
+ mulsc3 \
+ multi3 \
+ mulvdi3 \
+ mulvsi3 \
+ mulvti3 \
+ multc3 \
+ mulxc3 \
+ negdf2 \
+ negdi2 \
+ negsf2 \
+ negti2 \
+ negvdi2 \
+ negvsi2 \
+ negvti2 \
+ paritydi2 \
+ paritysi2 \
+ parityti2 \
+ popcountdi2 \
+ popcountsi2 \
+ popcountti2 \
+ powidf2 \
+ powisf2 \
+ powitf2 \
+ powixf2 \
+ subvdi3 \
+ subvsi3 \
+ subvti3 \
+ trampoline_setup \
+ truncdfhf2 \
+ truncsfhf2 \
+ ucmpdi2 \
+ ucmpti2 \
+ udivdi3 \
+ udivmoddi4 \
+ udivmodsi4 \
+ udivmodti4 \
+ udivti3 \
+ umoddi3 \
+ umodti3
+
+# 128-bit quad precision long double support, only used on arm64
+.if ${MACHINE_CPUARCH} == "aarch64"
+SRCF+= addtf3 \
+ comparetf2 \
+ divtf3 \
+ extenddftf2 \
+ extendsftf2 \
+ fixtfdi \
+ fixtfsi \
+ fixtfti \
+ fixunstfdi \
+ fixunstfsi \
+ fixunstfti \
+ floatunsitf \
+ multf3 \
+ subtf3 \
+ trunctfdf2 \
+ trunctfsf2
+.endif
+
+# These are already shipped by libc.a on arm and mips
+.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
+SRCF+= adddf3 \
+ addsf3 \
+ divdf3 \
+ divsf3 \
+ extendsfdf2 \
+ fixdfsi \
+ fixsfsi \
+ floatsidf \
+ floatsisf \
+ muldf3 \
+ mulsf3 \
+ subdf3 \
+ subsf3 \
+ truncdfsf2
+.endif
+
+.if ${MACHINE_CPUARCH} != "arm"
+SRCF+= comparedf2 \
+ comparesf2
+.endif
+
+.if ${MACHINE_CPUARCH} != "mips"
+SRCF+= divsi3 \
+ modsi3 \
+ udivsi3 \
+ umodsi3
+.endif
+
+# FreeBSD-specific atomic intrinsics.
+.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6"
+.PATH: ${.CURDIR}/../../sys/arm/arm
+
+SRCF+= stdatomic
+CFLAGS+= -DEMIT_SYNC_ATOMICS
+.elif ${MACHINE_CPUARCH} == "mips"
+.PATH: ${.CURDIR}/../../sys/mips/mips
+
+SRCF+= stdatomic
+.endif
+
+.for file in ${SRCF}
+. if ${MACHINE_ARCH:Marm*hf*} != "" && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S)
+SRCS+= ${file}vfp.S
+. elif !(${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH:Marm*hf*} == "") && exists(${CRTSRC}/${CRTARCH}/${file}.S)
+SRCS+= ${file}.S
+. else
+SRCS+= ${file}.c
+. endif
+.endfor
+
+.if ${MACHINE_CPUARCH} == "arm"
+SRCS+= aeabi_div0.c \
+ aeabi_idivmod.S \
+ aeabi_ldivmod.S \
+ aeabi_memcmp.S \
+ aeabi_memcpy.S \
+ aeabi_memmove.S \
+ aeabi_memset.S \
+ aeabi_uidivmod.S \
+ aeabi_uldivmod.S \
+ bswapdi2.S \
+ bswapsi2.S \
+ switch16.S \
+ switch32.S \
+ switch8.S \
+ switchu8.S \
+ sync_synchronize.S
+.endif
+
+.if ${MK_INSTALLLIB} != "no"
+SYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a
+.endif
+.if ${MK_PROFILE} != "no"
+SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a
+.endif
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
+ ${MACHINE_CPUARCH} == "powerpc"
+AFLAGS+=--noexecstack
+ACFLAGS+=-Wa,--noexecstack
+.endif
+
+
+.include <bsd.lib.mk>
diff --git a/lib/libcompiler_rt/Makefile.depend b/lib/libcompiler_rt/Makefile.depend
new file mode 100644
index 0000000..79506ce
--- /dev/null
+++ b/lib/libcompiler_rt/Makefile.depend
@@ -0,0 +1,12 @@
+# $FreeBSD$
+# Autogenerated - do NOT edit!
+
+DIRDEPS = \
+ include \
+
+
+.include <dirdeps.mk>
+
+.if ${DEP_RELDIR} == ${_DEP_RELDIR}
+# local dependencies - needed for -jN in clean tree
+.endif
OpenPOWER on IntegriCloud