Index: head/devel/Makefile =================================================================== --- head/devel/Makefile +++ head/devel/Makefile @@ -250,6 +250,7 @@ SUBDIR += clojure-cider SUBDIR += cloudabi-binutils SUBDIR += cloudabi-cloudlibc + SUBDIR += cloudabi-compiler-rt SUBDIR += cmake SUBDIR += cmake-fedora SUBDIR += cmake-gui Index: head/devel/cloudabi-compiler-rt/Makefile =================================================================== --- head/devel/cloudabi-compiler-rt/Makefile +++ head/devel/cloudabi-compiler-rt/Makefile @@ -0,0 +1,72 @@ +# Created by: Ed Schouten +# $FreeBSD$ + +PORTNAME= compiler-rt +DISTVERSION= 0.240389 +CATEGORIES= devel +MASTER_SITES= https://nuxi.nl/distfiles/compiler-rt/ +PKGNAMEPREFIX= cloudabi- + +MAINTAINER= ed@FreeBSD.org +COMMENT= Compiler runtime library for CloudABI + +LICENSE= MIT + +BUILD_DEPENDS= x86_64-unknown-cloudabi-ar:${PORTSDIR}/devel/cloudabi-binutils \ + x86_64-unknown-cloudabi-cc:${PORTSDIR}/lang/cloudabi-clang \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc.a:${PORTSDIR}/devel/cloudabi-cloudlibc + +USES= tar:xz + +PLIST_FILES= x86_64-unknown-cloudabi/lib/libcompiler_rt.a + +WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/lib/builtins + +# Do not use the CMake build rules provided by compiler-rt. The CMake build +# rules shipped with compiler-rt depend both on a standard C++ library and a +# compiler that can generate working executables. In our case we are not +# capable of generating executables, for the reason that we need an installed +# copy of compiler-rt. +# +# Fall back to generating the object files and the library manually. +SRCFILES= absvdi2.c absvsi2.c absvti2.c adddf3.c addsf3.c addtf3.c \ + addvdi3.c addvsi3.c addvti3.c ashldi3.c ashlti3.c ashrdi3.c \ + ashrti3.c clear_cache.c clzdi2.c clzsi2.c clzti2.c cmpdi2.c \ + cmpti2.c comparedf2.c comparesf2.c ctzdi2.c ctzsi2.c ctzti2.c \ + divdc3.c divdf3.c divdi3.c divmoddi4.c divmodsi4.c divsc3.c \ + divsf3.c divsi3.c divtf3.c divti3.c divxc3.c \ + enable_execute_stack.c extendhfsf2.c extendsfdf2.c ffsdi2.c \ + ffsti2.c fixdfdi.c fixdfsi.c fixdfti.c fixsfdi.c fixsfsi.c \ + fixsfti.c fixunsdfdi.c fixunsdfsi.c fixunsdfti.c fixunssfdi.c \ + fixunssfsi.c fixunssfti.c fixunsxfdi.c fixunsxfsi.c \ + fixunsxfti.c fixxfdi.c fixxfti.c floatsidf.c floatsisf.c \ + floattidf.c floattisf.c floattixf.c floatunsidf.c \ + floatunsisf.c floatuntidf.c floatuntisf.c floatuntixf.c \ + int_util.c lshrdi3.c lshrti3.c moddi3.c modsi3.c modti3.c \ + muldc3.c muldf3.c muldi3.c mulodi4.c mulosi4.c muloti4.c \ + mulsc3.c mulsf3.c multf3.c multi3.c mulvdi3.c mulvsi3.c \ + mulvti3.c mulxc3.c negdf2.c negdi2.c negsf2.c negti2.c \ + negvdi2.c negvsi2.c negvti2.c paritydi2.c paritysi2.c \ + parityti2.c popcountdi2.c popcountsi2.c popcountti2.c \ + powidf2.c powisf2.c powitf2.c powixf2.c subdf3.c subsf3.c \ + subtf3.c subvdi3.c subvsi3.c subvti3.c trampoline_setup.c \ + truncdfhf2.c truncdfsf2.c truncsfhf2.c ucmpdi2.c ucmpti2.c \ + udivdi3.c udivmoddi4.c udivmodsi4.c udivmodti4.c udivsi3.c \ + udivti3.c umoddi3.c umodsi3.c umodti3.c x86_64/floatdidf.c \ + x86_64/floatdisf.c x86_64/floatdixf.c x86_64/floatundidf.S \ + x86_64/floatundisf.S x86_64/floatundixf.S + +do-build: +.for f in ${SRCFILES} + ${LOCALBASE}/bin/x86_64-unknown-cloudabi-cc -O2 \ + -c -o ${WRKSRC}/$f.o ${WRKSRC}/$f +.endfor + cd ${WRKSRC}; ${LOCALBASE}/bin/x86_64-unknown-cloudabi-ar -rcs \ + libcompiler_rt.a ${SRCFILES:S/$/.o/} + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + ${INSTALL_DATA} ${WRKSRC}/libcompiler_rt.a \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + +.include Index: head/devel/cloudabi-compiler-rt/distinfo =================================================================== --- head/devel/cloudabi-compiler-rt/distinfo +++ head/devel/cloudabi-compiler-rt/distinfo @@ -0,0 +1,2 @@ +SHA256 (compiler-rt-0.240389.tar.xz) = 1df516ee4a9662e261458f69018b3c44e3c3d18702e1e90234478c00ad14c5eb +SIZE (compiler-rt-0.240389.tar.xz) = 1182404 Index: head/devel/cloudabi-compiler-rt/pkg-descr =================================================================== --- head/devel/cloudabi-compiler-rt/pkg-descr +++ head/devel/cloudabi-compiler-rt/pkg-descr @@ -0,0 +1,9 @@ +The compiler-rt library provides fallback routines for mathematical +functions that are not implemented in hardware. For example, when +compiling for a 32-bit target, converting a double to a 64-bit unsigned +integer is compiling into a runtime call to the "__fixunsdfdi" function. + +This library is a prerequisite for having a working CloudABI toolchain, +as Clang attempts to link this library into executables unconditionally. + +WWW: http://compiler-rt.llvm.org/