From owner-svn-ports-all@freebsd.org Sat Jun 27 20:34:20 2015 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D12F698EF51; Sat, 27 Jun 2015 20:34:20 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BCE7E1EE7; Sat, 27 Jun 2015 20:34:20 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t5RKYKUJ078160; Sat, 27 Jun 2015 20:34:20 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t5RKYGgE078137; Sat, 27 Jun 2015 20:34:16 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201506272034.t5RKYGgE078137@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Sat, 27 Jun 2015 20:34:15 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r390728 - in head/devel: . cloudabi-libc++ cloudabi-libc++/files cloudabi-libc++abi cloudabi-libunwind X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Jun 2015 20:34:20 -0000 Author: ed (src committer) Date: Sat Jun 27 20:34:15 2015 New Revision: 390728 URL: https://svnweb.freebsd.org/changeset/ports/390728 Log: Add libc++, libc++abi and libunwind for CloudABI. In order to get C++ support for CloudABI working, we need to import three libraries from LLVM, namely libc++, libc++abi and libunwind. Even though they are installed separately, there seems to be a circular dependency between them: - libc++ depends on an internal header from libc++abi. - libc++abi depends on public headers from libc++, but also an internal header from libunwind. - similarly, libunwind depends on public headers from libc++, but also an internal header from libc++abi. This change adds three new ports for these libraries. As with compiler-rt, it seems to be almost impossible to use the cmake infrastructure shipped with these libraries, for the reason that they depend on a functional C++ compiler being present. This is obviously not the case, as we're trying to get these installed. The libc++ port ships with a small number of patches. Almost all of the patches needed to get libc++ to work on CloudABI have already been upstreamed. These are the last remaining ones that haven't been upstreamed yet. Expect the patches to become smaller over time. Differential Revision: https://reviews.freebsd.org/D2898 Approved by: bapt Added: head/devel/cloudabi-libc++/ head/devel/cloudabi-libc++/Makefile (contents, props changed) head/devel/cloudabi-libc++/distinfo (contents, props changed) head/devel/cloudabi-libc++/files/ head/devel/cloudabi-libc++/files/patch-include_cstdio (contents, props changed) head/devel/cloudabi-libc++/files/patch-include_cstdlib (contents, props changed) head/devel/cloudabi-libc++/files/patch-include_cstring (contents, props changed) head/devel/cloudabi-libc++/files/patch-include_cwchar (contents, props changed) head/devel/cloudabi-libc++/files/patch-include_locale (contents, props changed) head/devel/cloudabi-libc++/files/patch-src_locale.cpp (contents, props changed) head/devel/cloudabi-libc++/pkg-descr (contents, props changed) head/devel/cloudabi-libc++/pkg-plist (contents, props changed) head/devel/cloudabi-libc++abi/ head/devel/cloudabi-libc++abi/Makefile (contents, props changed) head/devel/cloudabi-libc++abi/distinfo (contents, props changed) head/devel/cloudabi-libc++abi/pkg-descr (contents, props changed) head/devel/cloudabi-libunwind/ head/devel/cloudabi-libunwind/Makefile (contents, props changed) head/devel/cloudabi-libunwind/distinfo (contents, props changed) head/devel/cloudabi-libunwind/pkg-descr (contents, props changed) Modified: head/devel/Makefile Modified: head/devel/Makefile ============================================================================== --- head/devel/Makefile Sat Jun 27 19:52:43 2015 (r390727) +++ head/devel/Makefile Sat Jun 27 20:34:15 2015 (r390728) @@ -249,6 +249,9 @@ SUBDIR += cloudabi-binutils SUBDIR += cloudabi-cloudlibc SUBDIR += cloudabi-compiler-rt + SUBDIR += cloudabi-libc++ + SUBDIR += cloudabi-libc++abi + SUBDIR += cloudabi-libunwind SUBDIR += cmake SUBDIR += cmake-fedora SUBDIR += cmake-gui Added: head/devel/cloudabi-libc++/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/Makefile Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,48 @@ +# Created by: Ed Schouten +# $FreeBSD$ + +PORTNAME= libc++ +PORTVERSION= 0.240527 +CATEGORIES= devel +MASTER_SITES= https://nuxi.nl/distfiles/libc++/:libcxx \ + https://nuxi.nl/distfiles/libc++abi/:libcxxabi +PKGNAMEPREFIX= cloudabi- +DISTFILES= libc++-${PORTVERSION}${EXTRACT_SUFX}:libcxx \ + libc++abi-${PORTVERSION}${EXTRACT_SUFX}:libcxxabi + +MAINTAINER= ed@FreeBSD.org +COMMENT= C++ standard template library for CloudABI + +LICENSE= MIT + +BUILD_DEPENDS= x86_64-unknown-cloudabi-ar:${PORTSDIR}/devel/cloudabi-binutils \ + x86_64-unknown-cloudabi-c++:${PORTSDIR}/lang/cloudabi-clang \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc.a:${PORTSDIR}/devel/cloudabi-cloudlibc + +USES= tar:xz + +SRCFILES= algorithm bind chrono condition_variable debug exception \ + future hash ios iostream locale memory mutex new optional \ + random regex shared_mutex stdexcept string strstream \ + system_error thread typeinfo utility valarray + +do-build: +.for f in ${SRCFILES} + ${LOCALBASE}/bin/x86_64-unknown-cloudabi-c++ \ + -g -O2 -nostdinc++ -std=c++11 -I${WRKSRC}/include \ + -I${WRKDIR}/libc++abi-${PORTVERSION}/include \ + -D_LIBCPP_BUILD_STATIC -DLIBCXX_BUILDING_LIBCXXABI \ + -c -o ${WRKSRC}/$f.o ${WRKSRC}/src/$f.cpp +.endfor + cd ${WRKSRC}; ${LOCALBASE}/bin/x86_64-unknown-cloudabi-ar -rcs \ + libc++.a ${SRCFILES:S/$/.o/} + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/include/c++/ + ${INSTALL_DATA} ${WRKSRC}/libc++.a \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + @${CP} -r ${WRKSRC}/include \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/include/c++/v1 + +.include Added: head/devel/cloudabi-libc++/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/distinfo Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,4 @@ +SHA256 (libc++-0.240527.tar.xz) = 6775bb5ef2cacc71cd40d70ce54d77237333cb9ea83f1d06e0fd10fe58561f44 +SIZE (libc++-0.240527.tar.xz) = 967240 +SHA256 (libc++abi-0.240527.tar.xz) = 16b206bb5ad40fbd40f69f79c31924aa9efe7e01255f69962361f873f13b4c29 +SIZE (libc++abi-0.240527.tar.xz) = 507212 Added: head/devel/cloudabi-libc++/files/patch-include_cstdio ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-include_cstdio Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,25 @@ +--- include/cstdio.orig 2015-06-17 04:49:22 UTC ++++ include/cstdio +@@ -151,7 +151,6 @@ using ::setvbuf; + using ::fprintf; + using ::fscanf; + using ::snprintf; +-using ::sprintf; + using ::sscanf; + #ifndef _LIBCPP_MSVCRT + using ::vfprintf; +@@ -159,14 +158,12 @@ using ::vfscanf; + using ::vsscanf; + #endif // _LIBCPP_MSVCRT + using ::vsnprintf; +-using ::vsprintf; + using ::fgetc; + using ::fgets; + using ::fputc; + using ::fputs; + using ::getc; + using ::putc; +-using ::ungetc; + using ::fread; + using ::fwrite; + using ::fgetpos; Added: head/devel/cloudabi-libc++/files/patch-include_cstdlib ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-include_cstdlib Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,10 @@ +--- include/cstdlib.orig 2015-06-24 08:46:34 UTC ++++ include/cstdlib +@@ -118,7 +118,6 @@ using ::strtoul; + using ::strtoull; + #endif // _LIBCPP_HAS_NO_LONG_LONG + using ::rand; +-using ::srand; + using ::calloc; + using ::free; + using ::malloc; Added: head/devel/cloudabi-libc++/files/patch-include_cstring ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-include_cstring Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,13 @@ +--- include/cstring.orig 2015-06-24 08:46:34 UTC ++++ include/cstring +@@ -69,10 +69,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD + using ::size_t; + using ::memcpy; + using ::memmove; +-using ::strcpy; + using ::strncpy; +-using ::strcat; +-using ::strncat; + using ::memcmp; + using ::strcmp; + using ::strncmp; Added: head/devel/cloudabi-libc++/files/patch-include_cwchar ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-include_cwchar Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,32 @@ +--- include/cwchar.orig 2015-06-17 04:49:22 UTC ++++ include/cwchar +@@ -135,10 +135,8 @@ using ::fgetwc; + using ::fgetws; + using ::fputwc; + using ::fputws; +-using ::fwide; + using ::getwc; + using ::putwc; +-using ::ungetwc; + using ::wcstod; + #ifndef _LIBCPP_MSVCRT + using ::wcstof; +@@ -152,10 +150,7 @@ using ::wcstoul; + #ifndef _LIBCPP_HAS_NO_LONG_LONG + using ::wcstoull; + #endif // _LIBCPP_HAS_NO_LONG_LONG +-using ::wcscpy; + using ::wcsncpy; +-using ::wcscat; +-using ::wcsncat; + using ::wcscmp; + using ::wcscoll; + using ::wcsncmp; +@@ -199,7 +194,6 @@ using ::wmemset; + using ::wcsftime; + using ::btowc; + using ::wctob; +-using ::mbsinit; + using ::mbrlen; + using ::mbrtowc; + using ::wcrtomb; Added: head/devel/cloudabi-libc++/files/patch-include_locale ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-include_locale Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,18 @@ +--- include/locale.orig 2015-06-17 04:49:22 UTC ++++ include/locale +@@ -1297,13 +1297,13 @@ __num_put<_CharT>::__widen_and_group_flo + *__oe++ = __ct.widen(*__nf++); + *__oe++ = __ct.widen(*__nf++); + for (__ns = __nf; __ns < __ne; ++__ns) +- if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) ++ if (!isxdigit(*__ns)) + break; + } + else + { + for (__ns = __nf; __ns < __ne; ++__ns) +- if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) ++ if (!isdigit(*__ns)) + break; + } + if (__grouping.empty()) Added: head/devel/cloudabi-libc++/files/patch-src_locale.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/files/patch-src_locale.cpp Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,128 @@ +--- src/locale.cpp.orig 2015-06-24 08:46:54 UTC ++++ src/locale.cpp +@@ -575,8 +575,6 @@ locale::global(const locale& loc) + locale& g = __global(); + locale r = g; + g = loc; +- if (g.name() != "*") +- setlocale(LC_ALL, g.name().c_str()); + return r; + } + +@@ -813,7 +811,7 @@ ctype::do_toupper(char_type c) + #elif defined(__GLIBC__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__) + return isascii(c) ? ctype::__classic_upper_table()[c] : c; + #else +- return (isascii(c) && iswlower_l(c, __cloc())) ? c-L'a'+L'A' : c; ++ return (isascii(c) && iswlower(c)) ? c-L'a'+L'A' : c; + #endif + } + +@@ -827,7 +825,7 @@ ctype::do_toupper(char_type* lo + *low = isascii(*low) ? ctype::__classic_upper_table()[*low] + : *low; + #else +- *low = (isascii(*low) && islower_l(*low, __cloc())) ? (*low-L'a'+L'A') : *low; ++ *low = (isascii(*low) && islower(*low)) ? (*low-L'a'+L'A') : *low; + #endif + return low; + } +@@ -840,7 +838,7 @@ ctype::do_tolower(char_type c) + #elif defined(__GLIBC__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__) + return isascii(c) ? ctype::__classic_lower_table()[c] : c; + #else +- return (isascii(c) && isupper_l(c, __cloc())) ? c-L'A'+'a' : c; ++ return (isascii(c) && isupper(c)) ? c-L'A'+'a' : c; + #endif + } + +@@ -854,7 +852,7 @@ ctype::do_tolower(char_type* lo + *low = isascii(*low) ? ctype::__classic_lower_table()[*low] + : *low; + #else +- *low = (isascii(*low) && isupper_l(*low, __cloc())) ? *low-L'A'+L'a' : *low; ++ *low = (isascii(*low) && isupper(*low)) ? *low-L'A'+L'a' : *low; + #endif + return low; + } +@@ -923,7 +921,7 @@ ctype::do_toupper(char_type c) con + return isascii(c) ? + static_cast(__classic_upper_table()[static_cast(c)]) : c; + #else +- return (isascii(c) && islower_l(c, __cloc())) ? c-'a'+'A' : c; ++ return (isascii(c) && islower(c)) ? c-'a'+'A' : c; + #endif + } + +@@ -940,7 +938,7 @@ ctype::do_toupper(char_type* low, + *low = isascii(*low) ? + static_cast(__classic_upper_table()[static_cast(*low)]) : *low; + #else +- *low = (isascii(*low) && islower_l(*low, __cloc())) ? *low-'a'+'A' : *low; ++ *low = (isascii(*low) && islower(*low)) ? *low-'a'+'A' : *low; + #endif + return low; + } +@@ -957,7 +955,7 @@ ctype::do_tolower(char_type c) con + return isascii(c) ? + static_cast(__classic_lower_table()[static_cast(c)]) : c; + #else +- return (isascii(c) && isupper_l(c, __cloc())) ? c-'A'+'a' : c; ++ return (isascii(c) && isupper(c)) ? c-'A'+'a' : c; + #endif + } + +@@ -972,7 +970,7 @@ ctype::do_tolower(char_type* low, + #elif defined(__GLIBC__) || defined(__EMSCRIPTEN__) + *low = isascii(*low) ? static_cast(__classic_lower_table()[static_cast(*low)]) : *low; + #else +- *low = (isascii(*low) && isupper_l(*low, __cloc())) ? *low-'A'+'a' : *low; ++ *low = (isascii(*low) && isupper(*low)) ? *low-'A'+'a' : *low; + #endif + return low; + } +@@ -1201,28 +1199,28 @@ ctype_byname::~ctype_byname() + char + ctype_byname::do_toupper(char_type c) const + { +- return static_cast(toupper_l(static_cast(c), __l)); ++ return static_cast(toupper(static_cast(c))); + } + + const char* + ctype_byname::do_toupper(char_type* low, const char_type* high) const + { + for (; low != high; ++low) +- *low = static_cast(toupper_l(static_cast(*low), __l)); ++ *low = static_cast(toupper(static_cast(*low))); + return low; + } + + char + ctype_byname::do_tolower(char_type c) const + { +- return static_cast(tolower_l(static_cast(c), __l)); ++ return static_cast(tolower(static_cast(c))); + } + + const char* + ctype_byname::do_tolower(char_type* low, const char_type* high) const + { + for (; low != high; ++low) +- *low = static_cast(tolower_l(static_cast(*low), __l)); ++ *low = static_cast(tolower(static_cast(*low))); + return low; + } + +@@ -1707,11 +1705,6 @@ codecvt::do_un + int + codecvt::do_encoding() const _NOEXCEPT + { +-#ifdef _LIBCPP_LOCALE__L_EXTENSIONS +- if (mbtowc_l(nullptr, nullptr, MB_LEN_MAX, __l) == 0) +-#else +- if (__mbtowc_l(nullptr, nullptr, MB_LEN_MAX, __l) == 0) +-#endif + { + // stateless encoding + #ifdef _LIBCPP_LOCALE__L_EXTENSIONS Added: head/devel/cloudabi-libc++/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/pkg-descr Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,5 @@ +libc++ is an implementation of the C++ standard library maintained by +the LLVM project. This package installs a copy of this library as part +of the CloudABI toolchain. + +WWW: http://libcxx.llvm.org/ Added: head/devel/cloudabi-libc++/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++/pkg-plist Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,113 @@ +x86_64-unknown-cloudabi/include/c++/v1/__bit_reference +x86_64-unknown-cloudabi/include/c++/v1/__config +x86_64-unknown-cloudabi/include/c++/v1/__debug +x86_64-unknown-cloudabi/include/c++/v1/__functional_03 +x86_64-unknown-cloudabi/include/c++/v1/__functional_base +x86_64-unknown-cloudabi/include/c++/v1/__functional_base_03 +x86_64-unknown-cloudabi/include/c++/v1/__hash_table +x86_64-unknown-cloudabi/include/c++/v1/__locale +x86_64-unknown-cloudabi/include/c++/v1/__mutex_base +x86_64-unknown-cloudabi/include/c++/v1/__refstring +x86_64-unknown-cloudabi/include/c++/v1/__split_buffer +x86_64-unknown-cloudabi/include/c++/v1/__sso_allocator +x86_64-unknown-cloudabi/include/c++/v1/__std_stream +x86_64-unknown-cloudabi/include/c++/v1/__tree +x86_64-unknown-cloudabi/include/c++/v1/__tuple +x86_64-unknown-cloudabi/include/c++/v1/__undef___deallocate +x86_64-unknown-cloudabi/include/c++/v1/__undef_min_max +x86_64-unknown-cloudabi/include/c++/v1/algorithm +x86_64-unknown-cloudabi/include/c++/v1/array +x86_64-unknown-cloudabi/include/c++/v1/atomic +x86_64-unknown-cloudabi/include/c++/v1/bitset +x86_64-unknown-cloudabi/include/c++/v1/cassert +x86_64-unknown-cloudabi/include/c++/v1/ccomplex +x86_64-unknown-cloudabi/include/c++/v1/cctype +x86_64-unknown-cloudabi/include/c++/v1/cerrno +x86_64-unknown-cloudabi/include/c++/v1/cfenv +x86_64-unknown-cloudabi/include/c++/v1/cfloat +x86_64-unknown-cloudabi/include/c++/v1/chrono +x86_64-unknown-cloudabi/include/c++/v1/cinttypes +x86_64-unknown-cloudabi/include/c++/v1/ciso646 +x86_64-unknown-cloudabi/include/c++/v1/climits +x86_64-unknown-cloudabi/include/c++/v1/clocale +x86_64-unknown-cloudabi/include/c++/v1/cmath +x86_64-unknown-cloudabi/include/c++/v1/codecvt +x86_64-unknown-cloudabi/include/c++/v1/complex +x86_64-unknown-cloudabi/include/c++/v1/complex.h +x86_64-unknown-cloudabi/include/c++/v1/condition_variable +x86_64-unknown-cloudabi/include/c++/v1/csetjmp +x86_64-unknown-cloudabi/include/c++/v1/csignal +x86_64-unknown-cloudabi/include/c++/v1/cstdarg +x86_64-unknown-cloudabi/include/c++/v1/cstdbool +x86_64-unknown-cloudabi/include/c++/v1/cstddef +x86_64-unknown-cloudabi/include/c++/v1/cstdint +x86_64-unknown-cloudabi/include/c++/v1/cstdio +x86_64-unknown-cloudabi/include/c++/v1/cstdlib +x86_64-unknown-cloudabi/include/c++/v1/cstring +x86_64-unknown-cloudabi/include/c++/v1/ctgmath +x86_64-unknown-cloudabi/include/c++/v1/ctime +x86_64-unknown-cloudabi/include/c++/v1/cwchar +x86_64-unknown-cloudabi/include/c++/v1/cwctype +x86_64-unknown-cloudabi/include/c++/v1/deque +x86_64-unknown-cloudabi/include/c++/v1/exception +x86_64-unknown-cloudabi/include/c++/v1/experimental/__config +x86_64-unknown-cloudabi/include/c++/v1/experimental/algorithm +x86_64-unknown-cloudabi/include/c++/v1/experimental/chrono +x86_64-unknown-cloudabi/include/c++/v1/experimental/dynarray +x86_64-unknown-cloudabi/include/c++/v1/experimental/optional +x86_64-unknown-cloudabi/include/c++/v1/experimental/ratio +x86_64-unknown-cloudabi/include/c++/v1/experimental/string_view +x86_64-unknown-cloudabi/include/c++/v1/experimental/system_error +x86_64-unknown-cloudabi/include/c++/v1/experimental/tuple +x86_64-unknown-cloudabi/include/c++/v1/experimental/type_traits +x86_64-unknown-cloudabi/include/c++/v1/experimental/utility +x86_64-unknown-cloudabi/include/c++/v1/ext/__hash +x86_64-unknown-cloudabi/include/c++/v1/ext/hash_map +x86_64-unknown-cloudabi/include/c++/v1/ext/hash_set +x86_64-unknown-cloudabi/include/c++/v1/forward_list +x86_64-unknown-cloudabi/include/c++/v1/fstream +x86_64-unknown-cloudabi/include/c++/v1/functional +x86_64-unknown-cloudabi/include/c++/v1/future +x86_64-unknown-cloudabi/include/c++/v1/initializer_list +x86_64-unknown-cloudabi/include/c++/v1/iomanip +x86_64-unknown-cloudabi/include/c++/v1/ios +x86_64-unknown-cloudabi/include/c++/v1/iosfwd +x86_64-unknown-cloudabi/include/c++/v1/iostream +x86_64-unknown-cloudabi/include/c++/v1/istream +x86_64-unknown-cloudabi/include/c++/v1/iterator +x86_64-unknown-cloudabi/include/c++/v1/limits +x86_64-unknown-cloudabi/include/c++/v1/list +x86_64-unknown-cloudabi/include/c++/v1/locale +x86_64-unknown-cloudabi/include/c++/v1/map +x86_64-unknown-cloudabi/include/c++/v1/memory +x86_64-unknown-cloudabi/include/c++/v1/module.modulemap +x86_64-unknown-cloudabi/include/c++/v1/mutex +x86_64-unknown-cloudabi/include/c++/v1/new +x86_64-unknown-cloudabi/include/c++/v1/numeric +x86_64-unknown-cloudabi/include/c++/v1/ostream +x86_64-unknown-cloudabi/include/c++/v1/queue +x86_64-unknown-cloudabi/include/c++/v1/random +x86_64-unknown-cloudabi/include/c++/v1/ratio +x86_64-unknown-cloudabi/include/c++/v1/regex +x86_64-unknown-cloudabi/include/c++/v1/scoped_allocator +x86_64-unknown-cloudabi/include/c++/v1/set +x86_64-unknown-cloudabi/include/c++/v1/shared_mutex +x86_64-unknown-cloudabi/include/c++/v1/sstream +x86_64-unknown-cloudabi/include/c++/v1/stack +x86_64-unknown-cloudabi/include/c++/v1/stdexcept +x86_64-unknown-cloudabi/include/c++/v1/streambuf +x86_64-unknown-cloudabi/include/c++/v1/string +x86_64-unknown-cloudabi/include/c++/v1/strstream +x86_64-unknown-cloudabi/include/c++/v1/system_error +x86_64-unknown-cloudabi/include/c++/v1/tgmath.h +x86_64-unknown-cloudabi/include/c++/v1/thread +x86_64-unknown-cloudabi/include/c++/v1/tuple +x86_64-unknown-cloudabi/include/c++/v1/type_traits +x86_64-unknown-cloudabi/include/c++/v1/typeindex +x86_64-unknown-cloudabi/include/c++/v1/typeinfo +x86_64-unknown-cloudabi/include/c++/v1/unordered_map +x86_64-unknown-cloudabi/include/c++/v1/unordered_set +x86_64-unknown-cloudabi/include/c++/v1/utility +x86_64-unknown-cloudabi/include/c++/v1/valarray +x86_64-unknown-cloudabi/include/c++/v1/vector +x86_64-unknown-cloudabi/lib/libc++.a Added: head/devel/cloudabi-libc++abi/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++abi/Makefile Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,48 @@ +# Created by: Ed Schouten +# $FreeBSD$ + +PORTNAME= libc++abi +PORTVERSION= 0.240527 +CATEGORIES= devel +MASTER_SITES= https://nuxi.nl/distfiles/libc++abi/:libcxxabi \ + https://nuxi.nl/distfiles/libunwind/:libunwind +PKGNAMEPREFIX= cloudabi- +DISTFILES= libc++abi-${PORTVERSION}${EXTRACT_SUFX}:libcxxabi \ + libunwind-${PORTVERSION}${EXTRACT_SUFX}:libunwind + +MAINTAINER= ed@FreeBSD.org +COMMENT= C++ standard library support for CloudABI + +LICENSE= MIT + +BUILD_DEPENDS= x86_64-unknown-cloudabi-ar:${PORTSDIR}/devel/cloudabi-binutils \ + x86_64-unknown-cloudabi-c++:${PORTSDIR}/lang/cloudabi-clang \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc.a:${PORTSDIR}/devel/cloudabi-cloudlibc \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc++.a:${PORTSDIR}/devel/cloudabi-libc++ + +USES= tar:xz + +PLIST_FILES= x86_64-unknown-cloudabi/lib/libc++abi.a + +SRCFILES= abort_message cxa_aux_runtime cxa_default_handlers \ + cxa_demangle cxa_exception cxa_exception_storage cxa_guard \ + cxa_handlers cxa_new_delete cxa_personality cxa_thread_atexit \ + cxa_unexpected cxa_vector cxa_virtual exception \ + private_typeinfo stdexcept typeinfo + +do-build: +.for f in ${SRCFILES} + ${LOCALBASE}/bin/x86_64-unknown-cloudabi-c++ \ + -O2 -std=c++11 -I${WRKSRC}/include \ + -I${WRKDIR}/libunwind-${PORTVERSION}/include \ + -c -o ${WRKSRC}/$f.o ${WRKSRC}/src/$f.cpp +.endfor + cd ${WRKSRC}; ${LOCALBASE}/bin/x86_64-unknown-cloudabi-ar -rcs \ + libc++abi.a ${SRCFILES:S/$/.o/} + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + ${INSTALL_DATA} ${WRKSRC}/libc++abi.a \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + +.include Added: head/devel/cloudabi-libc++abi/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++abi/distinfo Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,4 @@ +SHA256 (libc++abi-0.240527.tar.xz) = 16b206bb5ad40fbd40f69f79c31924aa9efe7e01255f69962361f873f13b4c29 +SIZE (libc++abi-0.240527.tar.xz) = 507212 +SHA256 (libunwind-0.240527.tar.xz) = a921907dbdadbf86fbc9f0317f6a88707907e36be0ecce283cd46e45dfb16e0f +SIZE (libunwind-0.240527.tar.xz) = 59036 Added: head/devel/cloudabi-libc++abi/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libc++abi/pkg-descr Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,6 @@ +libc++abi is the C++ support library. It implements low-level language +features such as type information, name demangling and thread-safe +initialization of global storage. This port provides a copy of libc++abi +built for CloudABI. + +WWW: http://libcxxabi.llvm.org/ Added: head/devel/cloudabi-libunwind/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libunwind/Makefile Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,46 @@ +# Created by: Ed Schouten +# $FreeBSD$ + +PORTNAME= libunwind +PORTVERSION= 0.240527 +CATEGORIES= devel +MASTER_SITES= https://nuxi.nl/distfiles/libc++abi/:libcxxabi \ + https://nuxi.nl/distfiles/libunwind/:libunwind +PKGNAMEPREFIX= cloudabi- +DISTFILES= libc++abi-${PORTVERSION}${EXTRACT_SUFX}:libcxxabi \ + libunwind-${PORTVERSION}${EXTRACT_SUFX}:libunwind + +MAINTAINER= ed@FreeBSD.org +COMMENT= C++ standard library support for CloudABI + +LICENSE= MIT + +BUILD_DEPENDS= x86_64-unknown-cloudabi-ar:${PORTSDIR}/devel/cloudabi-binutils \ + x86_64-unknown-cloudabi-c++:${PORTSDIR}/lang/cloudabi-clang \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc.a:${PORTSDIR}/devel/cloudabi-cloudlibc \ + ${LOCALBASE}/x86_64-unknown-cloudabi/lib/libc++.a:${PORTSDIR}/devel/cloudabi-libc++ + +USES= tar:xz + +PLIST_FILES= x86_64-unknown-cloudabi/lib/libunwind.a + +SRCFILES= Unwind-EHABI.cpp Unwind-sjlj.c UnwindLevel1-gcc-ext.c \ + UnwindLevel1.c UnwindRegistersRestore.S UnwindRegistersSave.S \ + libunwind.cpp + +do-build: +.for f in ${SRCFILES} + ${LOCALBASE}/bin/x86_64-unknown-cloudabi-c++ \ + -O2 -std=c++11 -I${WRKSRC}/include \ + -I${WRKDIR}/libc++abi-${PORTVERSION}/include \ + -c -o ${WRKSRC}/$f.o ${WRKSRC}/src/$f +.endfor + cd ${WRKSRC}; ${LOCALBASE}/bin/x86_64-unknown-cloudabi-ar -rcs \ + libunwind.a ${SRCFILES:S/$/.o/} + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + ${INSTALL_DATA} ${WRKSRC}/libunwind.a \ + ${STAGEDIR}${PREFIX}/x86_64-unknown-cloudabi/lib/ + +.include Added: head/devel/cloudabi-libunwind/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libunwind/distinfo Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,4 @@ +SHA256 (libc++abi-0.240527.tar.xz) = 16b206bb5ad40fbd40f69f79c31924aa9efe7e01255f69962361f873f13b4c29 +SIZE (libc++abi-0.240527.tar.xz) = 507212 +SHA256 (libunwind-0.240527.tar.xz) = a921907dbdadbf86fbc9f0317f6a88707907e36be0ecce283cd46e45dfb16e0f +SIZE (libunwind-0.240527.tar.xz) = 59036 Added: head/devel/cloudabi-libunwind/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/cloudabi-libunwind/pkg-descr Sat Jun 27 20:34:15 2015 (r390728) @@ -0,0 +1,5 @@ +libunwind is a stack unwinder library maintained by the LLVM project. It +is used when handling exceptions in C++. This port provides a copy of +libunwind built for CloudABI. + +WWW: http://libcxxabi.llvm.org/