Index: devel/libc-bitcode/Makefile =================================================================== --- /dev/null +++ devel/libc-bitcode/Makefile @@ -0,0 +1,56 @@ +# $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 + +ONLY_FOR_ARCHS= amd64 + +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++ + +MAKE_ENV= LLVM_CC_NAME=clang${LLVM_SUFFIX} \ + LLVM_CXX_NAME=clang++${LLVM_SUFFIX} \ + GLLVM_OBJCOPY=${LOCALBASE}/bin/objcopy \ + MAKEOBJDIRPREFIX=${WRKDIR} + +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/klee-libc.bca \ + lib/libc.bca + +.include + +.if !exists(${SRC_BASE}/Makefile) +IGNORE= requires FreeBSD source files in ${SRC_BASE} +.endif + +do-fetch: + ${DO_NADA} + +do-build: + cd ${SRC_BASE}/lib/libnetbsd && ${SETENV} -i ${MAKE_ENV} ${MAKE} -j${MAKE_JOBS_NUMBER} + cd ${SRC_BASE}/lib/libc && ${SETENV} -i ${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/amd64.amd64/lib/libc/libc.a + ${CP} ${WRKDIR}/usr/src/amd64.amd64/lib/libc/libc.bca ${WRKDIR}/usr/src/amd64.amd64/lib/libc/klee-libc.bca + ${LOCALBASE}/bin/ar d ${WRKDIR}/usr/src/amd64.amd64/lib/libc/klee-libc.bca .stat.o.bc + +do-install: + ${INSTALL_DATA} ${WRKDIR}/usr/src/amd64.amd64/lib/libc/libc.bca ${STAGEDIR}${PREFIX}/lib + ${INSTALL_DATA} ${WRKDIR}/usr/src/amd64.amd64/lib/libc/klee-libc.bca ${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 archive (.bca) + +WWW: https://FreeBSD.org/ Index: devel/libcxx-bitcode/Makefile =================================================================== --- /dev/null +++ devel/libcxx-bitcode/Makefile @@ -0,0 +1,58 @@ +# $FreeBSD$ + +PORTNAME= libcxx-bitcode +DISTVERSION= 8.0.1 +CATEGORIES= devel +MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION}/ +DISTNAME= llvm-${DISTVERSION}.src +DISTFILES= llvm-${DISTVERSION}.src${EXTRACT_SUFX} \ + libcxx-${DISTVERSION}.src${EXTRACT_SUFX} + +MAINTAINER= arrowd@FreeBSD.org +COMMENT= libc++ library compiled to a single LLVM IR bitcode file + +LICENSE= LLVM +LICENSE_FILE_LLVM= ${LICENSE_DIR}/LICENSE.TXT + +BUILD_DEPENDS= binutils>=2:devel/binutils \ + llvm-ar${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \ + gclang:devel/gllvm + +USES= cmake:noninja python:3.6+,build tar:xz + +CMAKE_ARGS= -DLLVM_ENABLE_PROJECTS=libcxx \ + -DLLVM_ENABLE_THREADS:BOOL=OFF \ + -DLIBCXX_ENABLE_THREADS:BOOL=OFF \ + -DLIBCXX_ENABLE_SHARED:BOOL=ON + +CC= ${LOCALBASE}/bin/gclang +CXX= ${LOCALBASE}/bin/gclang++ + +MAKE_ENV= LLVM_CC_NAME=clang${LLVM_SUFFIX} \ + LLVM_CXX_NAME=clang++${LLVM_SUFFIX} \ + GLLVM_OBJCOPY=${LOCALBASE}/bin/objcopy +CONFIGURE_ENV= ${MAKE_ENV} + +ALL_TARGET= cxx + +LLVM_RELEASE= ${DISTVERSION:C/rc.*//} +LLVM_MAJOR= ${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//} +LLVM_SUFFIX= ${LLVM_RELEASE:C/\.[0-9]$//:C/\.//} + +post-extract: + ${LN} -s ${WRKDIR}/libcxx-${DISTVERSION}.src ${WRKDIR}/libcxx + +post-patch: + cd ${WRKDIR}/libcxx && ${PATCH} < ${PATCHDIR}/gets-fix + +post-build: + ${LOCALBASE}/bin/get-bc -a llvm-ar${LLVM_SUFFIX} -l llvm-link${LLVM_SUFFIX} -r ${LOCALBASE}/bin/ar ${WRKDIR}/.build/lib/libc++.a + +do-install: + ${INSTALL_DATA} ${WRKDIR}/.build/lib/libc++.bca ${STAGEDIR}${PREFIX}/lib + ${MAKE} -C ${WRKDIR}/.build DESTDIR=${STAGEDIR} install-libcxx-headers + ${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME} + ${MV} ${STAGEDIR}${PREFIX}/include/c++ ${STAGEDIR}${PREFIX}/include/${PORTNAME} + ${RM} -r ${STAGEDIR}${PREFIX}/include/include + +.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/files/gets-fix =================================================================== --- /dev/null +++ devel/libcxx-bitcode/files/gets-fix @@ -0,0 +1,27 @@ +--- include/cstdio.orig 2017-04-07 05:20:52.000000000 +0300 ++++ include/cstdio 2019-10-26 10:04:58.689743000 +0400 +@@ -153,7 +153,7 @@ + + #ifndef _LIBCPP_HAS_NO_STDIN + using ::getchar; +-#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_MSVCRT) ++#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS) + using ::gets; + #endif + using ::scanf; +--- include/__config.orig 2019-01-16 05:51:12.000000000 +0400 ++++ include/__config 2019-10-26 10:07:53.988084000 +0400 +@@ -1203,6 +1203,13 @@ + #define _LIBCPP_HAS_NO_STDOUT + #endif + ++// Some systems do not provide gets() in their C library, for security reasons. ++#ifndef _LIBCPP_C_HAS_NO_GETS ++# if defined(_LIBCPP_MSVCRT) || (defined(__FreeBSD__) && __FreeBSD__ >= 13) ++# define _LIBCPP_C_HAS_NO_GETS ++# endif ++#endif ++ + #if defined(__BIONIC__) || defined(__CloudABI__) || \ + defined(__Fuchsia__) || defined(_LIBCPP_HAS_MUSL_LIBC) + #define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE 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 archive (.bca) + +WWW: https://libcxx.llvm.org/ Index: devel/libcxx-bitcode/pkg-plist =================================================================== --- /dev/null +++ devel/libcxx-bitcode/pkg-plist @@ -0,0 +1,185 @@ +lib/libc++.bca +include/libcxx-bitcode/c++/v1/__bit_reference +include/libcxx-bitcode/c++/v1/__bsd_locale_defaults.h +include/libcxx-bitcode/c++/v1/__bsd_locale_fallbacks.h +include/libcxx-bitcode/c++/v1/__config +include/libcxx-bitcode/c++/v1/__debug +include/libcxx-bitcode/c++/v1/__errc +include/libcxx-bitcode/c++/v1/__functional_03 +include/libcxx-bitcode/c++/v1/__functional_base +include/libcxx-bitcode/c++/v1/__functional_base_03 +include/libcxx-bitcode/c++/v1/__hash_table +include/libcxx-bitcode/c++/v1/__libcpp_version +include/libcxx-bitcode/c++/v1/__locale +include/libcxx-bitcode/c++/v1/__mutex_base +include/libcxx-bitcode/c++/v1/__node_handle +include/libcxx-bitcode/c++/v1/__nullptr +include/libcxx-bitcode/c++/v1/__split_buffer +include/libcxx-bitcode/c++/v1/__sso_allocator +include/libcxx-bitcode/c++/v1/__std_stream +include/libcxx-bitcode/c++/v1/__string +include/libcxx-bitcode/c++/v1/__threading_support +include/libcxx-bitcode/c++/v1/__tree +include/libcxx-bitcode/c++/v1/__tuple +include/libcxx-bitcode/c++/v1/__undef_macros +include/libcxx-bitcode/c++/v1/algorithm +include/libcxx-bitcode/c++/v1/any +include/libcxx-bitcode/c++/v1/array +include/libcxx-bitcode/c++/v1/atomic +include/libcxx-bitcode/c++/v1/bit +include/libcxx-bitcode/c++/v1/bitset +include/libcxx-bitcode/c++/v1/cassert +include/libcxx-bitcode/c++/v1/ccomplex +include/libcxx-bitcode/c++/v1/cctype +include/libcxx-bitcode/c++/v1/cerrno +include/libcxx-bitcode/c++/v1/cfenv +include/libcxx-bitcode/c++/v1/cfloat +include/libcxx-bitcode/c++/v1/charconv +include/libcxx-bitcode/c++/v1/chrono +include/libcxx-bitcode/c++/v1/cinttypes +include/libcxx-bitcode/c++/v1/ciso646 +include/libcxx-bitcode/c++/v1/climits +include/libcxx-bitcode/c++/v1/clocale +include/libcxx-bitcode/c++/v1/cmath +include/libcxx-bitcode/c++/v1/codecvt +include/libcxx-bitcode/c++/v1/compare +include/libcxx-bitcode/c++/v1/complex +include/libcxx-bitcode/c++/v1/complex.h +include/libcxx-bitcode/c++/v1/condition_variable +include/libcxx-bitcode/c++/v1/csetjmp +include/libcxx-bitcode/c++/v1/csignal +include/libcxx-bitcode/c++/v1/cstdarg +include/libcxx-bitcode/c++/v1/cstdbool +include/libcxx-bitcode/c++/v1/cstddef +include/libcxx-bitcode/c++/v1/cstdint +include/libcxx-bitcode/c++/v1/cstdio +include/libcxx-bitcode/c++/v1/cstdlib +include/libcxx-bitcode/c++/v1/cstring +include/libcxx-bitcode/c++/v1/ctgmath +include/libcxx-bitcode/c++/v1/ctime +include/libcxx-bitcode/c++/v1/ctype.h +include/libcxx-bitcode/c++/v1/cwchar +include/libcxx-bitcode/c++/v1/cwctype +include/libcxx-bitcode/c++/v1/cxxabi.h +include/libcxx-bitcode/c++/v1/deque +include/libcxx-bitcode/c++/v1/errno.h +include/libcxx-bitcode/c++/v1/exception +include/libcxx-bitcode/c++/v1/experimental/__config +include/libcxx-bitcode/c++/v1/experimental/__memory +include/libcxx-bitcode/c++/v1/experimental/algorithm +include/libcxx-bitcode/c++/v1/experimental/any +include/libcxx-bitcode/c++/v1/experimental/chrono +include/libcxx-bitcode/c++/v1/experimental/coroutine +include/libcxx-bitcode/c++/v1/experimental/deque +include/libcxx-bitcode/c++/v1/experimental/filesystem +include/libcxx-bitcode/c++/v1/experimental/forward_list +include/libcxx-bitcode/c++/v1/experimental/functional +include/libcxx-bitcode/c++/v1/experimental/iterator +include/libcxx-bitcode/c++/v1/experimental/list +include/libcxx-bitcode/c++/v1/experimental/map +include/libcxx-bitcode/c++/v1/experimental/memory_resource +include/libcxx-bitcode/c++/v1/experimental/numeric +include/libcxx-bitcode/c++/v1/experimental/optional +include/libcxx-bitcode/c++/v1/experimental/propagate_const +include/libcxx-bitcode/c++/v1/experimental/ratio +include/libcxx-bitcode/c++/v1/experimental/regex +include/libcxx-bitcode/c++/v1/experimental/set +include/libcxx-bitcode/c++/v1/experimental/simd +include/libcxx-bitcode/c++/v1/experimental/string +include/libcxx-bitcode/c++/v1/experimental/string_view +include/libcxx-bitcode/c++/v1/experimental/system_error +include/libcxx-bitcode/c++/v1/experimental/tuple +include/libcxx-bitcode/c++/v1/experimental/type_traits +include/libcxx-bitcode/c++/v1/experimental/unordered_map +include/libcxx-bitcode/c++/v1/experimental/unordered_set +include/libcxx-bitcode/c++/v1/experimental/utility +include/libcxx-bitcode/c++/v1/experimental/vector +include/libcxx-bitcode/c++/v1/ext/__hash +include/libcxx-bitcode/c++/v1/ext/hash_map +include/libcxx-bitcode/c++/v1/ext/hash_set +include/libcxx-bitcode/c++/v1/filesystem +include/libcxx-bitcode/c++/v1/float.h +include/libcxx-bitcode/c++/v1/forward_list +include/libcxx-bitcode/c++/v1/fstream +include/libcxx-bitcode/c++/v1/functional +include/libcxx-bitcode/c++/v1/future +include/libcxx-bitcode/c++/v1/initializer_list +include/libcxx-bitcode/c++/v1/inttypes.h +include/libcxx-bitcode/c++/v1/iomanip +include/libcxx-bitcode/c++/v1/ios +include/libcxx-bitcode/c++/v1/iosfwd +include/libcxx-bitcode/c++/v1/iostream +include/libcxx-bitcode/c++/v1/istream +include/libcxx-bitcode/c++/v1/iterator +include/libcxx-bitcode/c++/v1/limits +include/libcxx-bitcode/c++/v1/limits.h +include/libcxx-bitcode/c++/v1/list +include/libcxx-bitcode/c++/v1/locale +include/libcxx-bitcode/c++/v1/locale.h +include/libcxx-bitcode/c++/v1/map +include/libcxx-bitcode/c++/v1/math.h +include/libcxx-bitcode/c++/v1/memory +include/libcxx-bitcode/c++/v1/module.modulemap +include/libcxx-bitcode/c++/v1/mutex +include/libcxx-bitcode/c++/v1/new +include/libcxx-bitcode/c++/v1/numeric +include/libcxx-bitcode/c++/v1/optional +include/libcxx-bitcode/c++/v1/ostream +include/libcxx-bitcode/c++/v1/queue +include/libcxx-bitcode/c++/v1/random +include/libcxx-bitcode/c++/v1/ratio +include/libcxx-bitcode/c++/v1/regex +include/libcxx-bitcode/c++/v1/scoped_allocator +include/libcxx-bitcode/c++/v1/set +include/libcxx-bitcode/c++/v1/setjmp.h +include/libcxx-bitcode/c++/v1/shared_mutex +include/libcxx-bitcode/c++/v1/span +include/libcxx-bitcode/c++/v1/sstream +include/libcxx-bitcode/c++/v1/stack +include/libcxx-bitcode/c++/v1/stdbool.h +include/libcxx-bitcode/c++/v1/stddef.h +include/libcxx-bitcode/c++/v1/stdexcept +include/libcxx-bitcode/c++/v1/stdint.h +include/libcxx-bitcode/c++/v1/stdio.h +include/libcxx-bitcode/c++/v1/stdlib.h +include/libcxx-bitcode/c++/v1/streambuf +include/libcxx-bitcode/c++/v1/string +include/libcxx-bitcode/c++/v1/string.h +include/libcxx-bitcode/c++/v1/string_view +include/libcxx-bitcode/c++/v1/strstream +include/libcxx-bitcode/c++/v1/support/android/locale_bionic.h +include/libcxx-bitcode/c++/v1/support/fuchsia/xlocale.h +include/libcxx-bitcode/c++/v1/support/ibm/limits.h +include/libcxx-bitcode/c++/v1/support/ibm/locale_mgmt_aix.h +include/libcxx-bitcode/c++/v1/support/ibm/support.h +include/libcxx-bitcode/c++/v1/support/ibm/xlocale.h +include/libcxx-bitcode/c++/v1/support/musl/xlocale.h +include/libcxx-bitcode/c++/v1/support/newlib/xlocale.h +include/libcxx-bitcode/c++/v1/support/solaris/floatingpoint.h +include/libcxx-bitcode/c++/v1/support/solaris/wchar.h +include/libcxx-bitcode/c++/v1/support/solaris/xlocale.h +include/libcxx-bitcode/c++/v1/support/win32/limits_msvc_win32.h +include/libcxx-bitcode/c++/v1/support/win32/locale_win32.h +include/libcxx-bitcode/c++/v1/support/xlocale/__nop_locale_mgmt.h +include/libcxx-bitcode/c++/v1/support/xlocale/__posix_l_fallback.h +include/libcxx-bitcode/c++/v1/support/xlocale/__strtonum_fallback.h +include/libcxx-bitcode/c++/v1/support/xlocale/xlocale.h +include/libcxx-bitcode/c++/v1/system_error +include/libcxx-bitcode/c++/v1/tgmath.h +include/libcxx-bitcode/c++/v1/thread +include/libcxx-bitcode/c++/v1/tuple +include/libcxx-bitcode/c++/v1/type_traits +include/libcxx-bitcode/c++/v1/typeindex +include/libcxx-bitcode/c++/v1/typeinfo +include/libcxx-bitcode/c++/v1/unordered_map +include/libcxx-bitcode/c++/v1/unordered_set +include/libcxx-bitcode/c++/v1/unwind-arm.h +include/libcxx-bitcode/c++/v1/unwind-itanium.h +include/libcxx-bitcode/c++/v1/unwind.h +include/libcxx-bitcode/c++/v1/utility +include/libcxx-bitcode/c++/v1/valarray +include/libcxx-bitcode/c++/v1/variant +include/libcxx-bitcode/c++/v1/vector +include/libcxx-bitcode/c++/v1/version +include/libcxx-bitcode/c++/v1/wchar.h +include/libcxx-bitcode/c++/v1/wctype.h \ No newline at end of file