Index: devel/libc-bitcode/Makefile =================================================================== --- /dev/null +++ devel/libc-bitcode/Makefile @@ -0,0 +1,58 @@ +# $FreeBSD$ + +PORTNAME= libc-bitcode +DISTVERSION= 8.0.1 +CATEGORIES= devel +DISTFILES= + +MAINTAINER= arrowd@FreeBSD.org +COMMENT= FreeBSD libc library compiled to a single LLVM IR bitcode file + +LICENSE= BSD2CLAUSE + +# TODO: review binutils dependency after PR 241437 is fixed +BUILD_DEPENDS= binutils>=2:devel/binutils \ + llvm-ar${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \ + gclang:devel/gllvm + +CC= ${LOCALBASE}/bin/gclang +CXX= ${LOCALBASE}/bin/gclang++ + +MY_MAKE_ENV= LLVM_CC_NAME=clang${LLVM_SUFFIX} \ + LLVM_CXX_NAME=clang++${LLVM_SUFFIX} \ + GLLVM_OBJCOPY=${LOCALBASE}/bin/objcopy \ + WLLVM_OUTPUT_LEVEL=DEBUG \ + WLLVM_OUTPUT_FILE=/tmp/gllvm.log \ + CC=${CC} \ + CXX=${CXX} \ + LD=${LD} \ + PATH=${PATH} \ + MAKEOBJDIRPREFIX=${WRKDIR} + +# LLVM version is determined by which one security/klee use +LLVM_RELEASE= ${DISTVERSION:C/rc.*//} +LLVM_MAJOR= ${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//} +LLVM_SUFFIX= ${LLVM_RELEASE:C/\.[0-9]$//:C/\.//} + +PLIST_FILES= lib/libc.so.7.full.bc \ + lib/klee-libc.bc + +.include + +.if !exists(${SRC_BASE}/Makefile) +IGNORE= requires FreeBSD source files in ${SRC_BASE} +.endif + +do-build: + cd ${SRC_BASE}/lib/libnetbsd && ${SETENV} -i ${MY_MAKE_ENV} ${MAKE} -j${MAKE_JOBS_NUMBER} + cd ${SRC_BASE}/lib/libc && ${SETENV} -i ${MY_MAKE_ENV} ${MAKE} -j${MAKE_JOBS_NUMBER} + +post-build: + ${LOCALBASE}/bin/get-bc -a llvm-ar${LLVM_SUFFIX} -l llvm-link${LLVM_SUFFIX} -r ${LOCALBASE}/bin/ar ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc/libc.so.7.full + ${CP} ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc/libc.so.7.full.bc ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc/klee-libc.bc + +do-install: + ${INSTALL_DATA} ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc/libc.so.7.full.bc ${STAGEDIR}${PREFIX}/lib + ${INSTALL_DATA} ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc/klee-libc.bc ${STAGEDIR}${PREFIX}/lib + +.include Index: devel/libc-bitcode/pkg-descr =================================================================== --- /dev/null +++ devel/libc-bitcode/pkg-descr @@ -0,0 +1,3 @@ +This port provides FreeBSD libc compiled into LLVM IR bitcode file (.bc). + +WWW: https://FreeBSD.org/ Index: devel/libcxx-bitcode/Makefile =================================================================== --- /dev/null +++ devel/libcxx-bitcode/Makefile @@ -0,0 +1,63 @@ +# $FreeBSD$ + +PORTNAME= libcxx-bitcode +DISTVERSION= 8.0.1 +CATEGORIES= devel +DISTFILES= + +MAINTAINER= arrowd@FreeBSD.org +COMMENT= libc++ library compiled to a single LLVM IR bitcode file + +LICENSE= LLVM +LICENSE_NAME= LLVM +LICENSE_FILE= ${SRC_BASE}/contrib/${LIBCXX_SUBDIR}/LICENSE.TXT +LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept + +# TODO: review binutils dependency after PR 241437 is fixed +BUILD_DEPENDS= binutils>=2:devel/binutils \ + llvm-ar${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \ + gclang:devel/gllvm + +CC= ${LOCALBASE}/bin/gclang +CXX= ${LOCALBASE}/bin/gclang++ + +MY_MAKE_ENV= LLVM_CC_NAME=clang${LLVM_SUFFIX} \ + LLVM_CXX_NAME=clang++${LLVM_SUFFIX} \ + GLLVM_OBJCOPY=${LOCALBASE}/bin/objcopy \ + WLLVM_OUTPUT_LEVEL=DEBUG \ + WLLVM_OUTPUT_FILE=/tmp/gllvm.log \ + CC=${CC} \ + CXX=${CXX} \ + LD=${LD} \ + PATH=${PATH} \ + MAKEOBJDIRPREFIX=${WRKDIR} + +# LLVM version is derived from the one used by security/klee +LLVM_RELEASE= ${DISTVERSION:C/rc.*//} +LLVM_MAJOR= ${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//} +LLVM_SUFFIX= ${LLVM_RELEASE:C/\.[0-9]$//:C/\.//} + +PLIST_FILES= lib/libc++.so.1.bc + +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1300000 +LIBCXX_SUBDIR= libc++ +.else +LIBCXX_SUBDIR= llvm-project/libcxx +.endif + +.if !exists(${SRC_BASE}/Makefile) +IGNORE= requires FreeBSD source files in ${SRC_BASE} +.endif + +do-build: + cd ${SRC_BASE}/lib/libc++ && ${SETENV} -i ${MY_MAKE_ENV} ${MAKE} -j${MAKE_JOBS_NUMBER} + +post-build: + ${LOCALBASE}/bin/get-bc -a llvm-ar${LLVM_SUFFIX} -l llvm-link${LLVM_SUFFIX} -r ${LOCALBASE}/bin/ar ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc++/libc++.so.1 + +do-install: + ${INSTALL_DATA} ${WRKDIR}/usr/src/${ARCH}.${ARCH}/lib/libc++/libc++.so.1.bc ${STAGEDIR}${PREFIX}/lib + +.include Index: devel/libcxx-bitcode/distinfo =================================================================== --- /dev/null +++ devel/libcxx-bitcode/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1571936170 +SHA256 (llvm-8.0.1.src.tar.xz) = 44787a6d02f7140f145e2250d56c9f849334e11f9ae379827510ed72f12b75e7 +SIZE (llvm-8.0.1.src.tar.xz) = 30477608 +SHA256 (libcxx-8.0.1.src.tar.xz) = 7f0652c86a0307a250b5741ab6e82bb10766fb6f2b5a5602a63f30337e629b78 +SIZE (libcxx-8.0.1.src.tar.xz) = 1739524 +SHA256 (libcxxabi-8.0.1.src.tar.xz) = b75bf3c8dc506e7d950d877eefc8b6120a4651aaa110f5805308861f2cfaf6ef +SIZE (libcxxabi-8.0.1.src.tar.xz) = 538356 Index: devel/libcxx-bitcode/pkg-descr =================================================================== --- /dev/null +++ devel/libcxx-bitcode/pkg-descr @@ -0,0 +1,7 @@ +libc++ is a new implementation of the C++ standard library, targeting C++11 +and above. It features correctness as defined by the C++11 standard, fast +execution, minimal memory use and fast compile times. + +This port provides libc++ compiled into LLVM IR bitcode file (.bc). + +WWW: https://libcxx.llvm.org/