diff options
Diffstat (limited to 'lib/libcompiler_rt/Makefile')
-rw-r--r-- | lib/libcompiler_rt/Makefile | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/libcompiler_rt/Makefile b/lib/libcompiler_rt/Makefile new file mode 100644 index 000000000000..08467bbec310 --- /dev/null +++ b/lib/libcompiler_rt/Makefile @@ -0,0 +1,44 @@ +.include <src.opts.mk> + +PACKAGE= lib${LIB} +LIB= compiler_rt +MK_SSP= no +NO_PIC= +WARNS?= 2 + +CFLAGS+= ${PICFLAG} +CFLAGS+= -fvisibility=hidden +CFLAGS+= -DVISIBILITY_HIDDEN +CFLAGS+= -I${SRCTOP}/contrib/llvm-project/libunwind/include + +# gcc has incompatible internal declarations for __divtc3 and __multc3, but has +# no option to silence its warning, so make warnings non-fatal. +MK_WERROR.gcc= no + +.include "Makefile.inc" + +# Out-of-line LSE atomics helpers for aarch64 +.if ${MACHINE_CPUARCH} == "aarch64" +. for pat in cas swp ldadd ldclr ldeor ldset +. for size in 1 2 4 8 16 +. for model in 1 2 3 4 5 +. if ${pat} == "cas" || ${size} != "16" +# Use .for to define lse_name, to get a special loop-local variable +. for lse_name in outline_atomic_${pat}${size}_${model}.S +CLEANFILES+= ${lse_name} +STATICOBJS+= ${lse_name:R}.o +ACFLAGS.${lse_name}+= -DL_${pat} -DSIZE=${size} -DMODEL=${model} -I${CRTSRC} +${lse_name}: lse.S + ln -sf ${.ALLSRC} ${.TARGET} +. endfor # lse_name +. endif +. endfor # model +. endfor # size +. endfor # pat +.endif + +.if ${MK_INSTALLLIB} != "no" +SYMLINKS+= libcompiler_rt.a ${LIBDIR}/libgcc.a +.endif + +.include <bsd.lib.mk> |