svn commit: r353096 - in head/devel: . libc++ libc++/files xlocale

Baptiste Daroussin bapt at FreeBSD.org
Tue May 6 14:38:19 UTC 2014


Author: bapt
Date: Tue May  6 14:38:16 2014
New Revision: 353096
URL: http://svnweb.freebsd.org/changeset/ports/353096
QAT: https://qat.redports.org/buildarchive/r353096/

Log:
  Update libc++ to r208080
  Fix build on FreeBSD 8.4 by using devel/libmissing and new devel/xlocale
  Add devel/xlocale which is a striped down version of freebsd's xlocale with just the minimal
  requirements for libc++, initially maintained in libc++'s trunk for solaris support

Added:
  head/devel/libc++/files/extra-libmissing   (contents, props changed)
  head/devel/libc++/files/patch-include__support__solaris__xlocale.h   (contents, props changed)
  head/devel/libc++/files/patch-src__string.cpp   (contents, props changed)
  head/devel/libc++/files/patch-src__support__solaris__xlocale.c   (contents, props changed)
  head/devel/xlocale/
  head/devel/xlocale/Makefile   (contents, props changed)
  head/devel/xlocale/pkg-descr   (contents, props changed)
  head/devel/xlocale/pkg-plist   (contents, props changed)
Modified:
  head/devel/Makefile
  head/devel/libc++/Makefile
  head/devel/libc++/Makefile.svn_rev
  head/devel/libc++/distinfo
  head/devel/libc++/pkg-plist

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Tue May  6 13:57:09 2014	(r353095)
+++ head/devel/Makefile	Tue May  6 14:38:16 2014	(r353096)
@@ -4619,6 +4619,7 @@
     SUBDIR += xdg-utils
     SUBDIR += xfce4-dev-tools
     SUBDIR += xfce4-vala
+    SUBDIR += xlocale
     SUBDIR += xmake
     SUBDIR += xmltooling
     SUBDIR += xorg-macros

Modified: head/devel/libc++/Makefile
==============================================================================
--- head/devel/libc++/Makefile	Tue May  6 13:57:09 2014	(r353095)
+++ head/devel/libc++/Makefile	Tue May  6 14:38:16 2014	(r353096)
@@ -1,22 +1,26 @@
 # Created by: Koop Mast <kwm at FreeBSD.org>
 # $FreeBSD$
 
-PORTNAME=	libc++
+PORTNAME?=	libc++
+DISTNAME=	libc++-${PORTVERSION}
 PORTVERSION=	${SVN_REV}
 CATEGORIES=	devel
 MASTER_SITES=	http://files.etoilebsd.net/libc++/ \
 		LOCAL/bapt
 
 MAINTAINER=	bapt at FreeBSD.org
-COMMENT=	Llvm's C++ standard library with c++11 support
+COMMENT?=	Llvm's C++ standard library with c++11 support
 
-LIB_DEPENDS=	libcxxrt.so:${PORTSDIR}/devel/libcxxrt
+USES=		tar:xz
 
+.ifndef MASTERDIR
 LICENSE_GROUP=	MIT UIUC
 LICENSE_NAME_UIUC=	University of Illinois/NCSA Open Source License
 LICENSE_PERMS_UIUC=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
 
-USES=		cmake:outsource compiler:c++11-lang tar:xz
+LIB_DEPENDS=	libcxxrt.so:${PORTSDIR}/devel/libcxxrt
+
+USES+=		cmake:outsource compiler:c++11-lang
 USE_LDCONFIG=	yes
 LDFLAGS+=	-L${LOCALBASE}/lib
 
@@ -30,6 +34,16 @@ CXXRT_INCS=	${LOCALBASE}/include/cxxrt/
 CXXRT_LIB=	${LOCALBASE}/lib/libcxxrt.so
 .endif
 
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 900000
+LIB_DEPENDS+=	libmissing.so:${PORTSDIR}/math/libmissing \
+		libxlocale.so:${PORTSDIR}/devel/xlocale
+EXTRA_PATCHES=	${FILESDIR}/extra-libmissing
+CXXFLAGS+=	-I${LOCALBASE}/include -D__LONG_LONG_SUPPORTED
+LDFLAGS+=	-lmissing
+EXTRALIB=	${LOCALBASE}/lib/libmissing.so.2 ${LOCALBASE}/lib/libxlocale.so.0
+.endif
+
+
 CMAKE_ARGS=	-DLIBCXX_CXX_ABI=libcxxrt -DLIBCXX_LIBCXXRT_INCLUDE_PATHS=${CXXRT_INCS}
 
 .if !defined(SVN_REV)
@@ -56,10 +70,11 @@ post-install:
 	${LN} -sf c++/v1 ${STAGEDIR}${PREFIX}/include/c++/v1/tr1
 	${RM} ${STAGEDIR}${PREFIX}/lib/libc++.so
 	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/c++/
-	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB})' > ${STAGEDIR}${PREFIX}/lib/libc++.so
-	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB})' > ${STAGEDIR}${PREFIX}/lib/c++/libstdc++.so
+	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB} ${EXTRALIB})' > ${STAGEDIR}${PREFIX}/lib/libc++.so
+	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB} ${EXTRALIB})' > ${STAGEDIR}${PREFIX}/lib/c++/libstdc++.so
 
 regression-test: build
 	cd ${WRKSRC}/test && ${SH} ./testit
 
+.endif
 .include <bsd.port.mk>

Modified: head/devel/libc++/Makefile.svn_rev
==============================================================================
--- head/devel/libc++/Makefile.svn_rev	Tue May  6 13:57:09 2014	(r353095)
+++ head/devel/libc++/Makefile.svn_rev	Tue May  6 14:38:16 2014	(r353096)
@@ -1 +1 @@
-SVN_REV=  200683
+SVN_REV=  208080

Modified: head/devel/libc++/distinfo
==============================================================================
--- head/devel/libc++/distinfo	Tue May  6 13:57:09 2014	(r353095)
+++ head/devel/libc++/distinfo	Tue May  6 14:38:16 2014	(r353096)
@@ -1,2 +1,2 @@
-SHA256 (libc++-200683.tar.xz) = a9771ae4d6151fa9c7ca5a3cb9f00492ddc1f165d38dc6461a8876a5abe4711f
-SIZE (libc++-200683.tar.xz) = 863432
+SHA256 (libc++-208080.tar.xz) = e764167cef1b73f03f2e736eedb2d45d0d2247590de8c878f8ca0bba6f2a9cfc
+SIZE (libc++-208080.tar.xz) = 867788

Added: head/devel/libc++/files/extra-libmissing
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libc++/files/extra-libmissing	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,22 @@
+--- ./include/cmath.orig	2014-01-06 19:12:50.000000000 +0100
++++ ./include/cmath	2014-05-06 14:14:44.388681947 +0200
+@@ -299,6 +299,7 @@
+ 
+ #include <__config>
+ #include <math.h>
++#include <missing_math.h>
+ #include <type_traits>
+ 
+ #ifdef _LIBCPP_MSVCRT
+--- include/__locale.orig	2014-05-06 15:33:07.907356770 +0200
++++ include/__locale	2014-05-06 15:32:20.702360182 +0200
+@@ -24,6 +24,9 @@
+ #elif _AIX
+ # include <support/ibm/xlocale.h>
+ #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
++# define __LONG_LONG_SUPPORTED
++# include <stdlib.h>
++# include <limits.h>
+ # include <xlocale.h>
+ #endif  // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__
+ 

Added: head/devel/libc++/files/patch-include__support__solaris__xlocale.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libc++/files/patch-include__support__solaris__xlocale.h	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,13 @@
+--- ./include/support/solaris/xlocale.h.orig	2014-01-16 17:58:45.000000000 +0100
++++ ./include/support/solaris/xlocale.h	2014-05-06 16:11:11.135199398 +0200
+@@ -32,8 +32,8 @@
+ 
+ #define LC_GLOBAL_LOCALE ((locale_t)-1)
+ 
+-size_t __mb_cur_max(locale_t l);
+-#define MB_CUR_MAX_L(l) __mb_cur_max(l) 
++size_t __mb_cur_max_l(locale_t l);
++#define MB_CUR_MAX_L(l) __mb_cur_max_l(l) 
+ 
+ locale_t newlocale(int mask, const char * locale, locale_t base);
+ void freelocale(locale_t loc);

Added: head/devel/libc++/files/patch-src__string.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libc++/files/patch-src__string.cpp	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,10 @@
+--- ./src/string.cpp.orig	2014-05-06 16:01:31.219239454 +0200
++++ ./src/string.cpp	2014-05-06 15:59:03.134249779 +0200
+@@ -19,6 +19,7 @@
+ #include "support/win32/support.h"
+ #endif // _LIBCPP_MSVCRT
+ #include <stdio.h>
++#include <stdlib.h>
+ 
+ _LIBCPP_BEGIN_NAMESPACE_STD
+ 

Added: head/devel/libc++/files/patch-src__support__solaris__xlocale.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libc++/files/patch-src__support__solaris__xlocale.c	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,11 @@
+--- ./src/support/solaris/xlocale.c.orig	2014-01-16 17:58:45.000000000 +0100
++++ ./src/support/solaris/xlocale.c	2014-05-06 15:50:38.219287659 +0200
+@@ -26,7 +26,7 @@
+ #include "mbsnrtowcs.inc"
+ #include "wcsnrtombs.inc"
+       
+-size_t __mb_cur_max(locale_t __l) {
++size_t __mb_cur_max_l(locale_t __l) {
+   FIX_LOCALE(__l);
+   return (__l->lc_ctype->cmapp->cm_mb_cur_max);
+ }

Modified: head/devel/libc++/pkg-plist
==============================================================================
--- head/devel/libc++/pkg-plist	Tue May  6 13:57:09 2014	(r353095)
+++ head/devel/libc++/pkg-plist	Tue May  6 14:38:16 2014	(r353096)
@@ -10,6 +10,7 @@ include/c++/v1/__functional_base_03
 include/c++/v1/__hash_table
 include/c++/v1/__locale
 include/c++/v1/__mutex_base
+include/c++/v1/__refstring
 include/c++/v1/__split_buffer
 include/c++/v1/__sso_allocator
 include/c++/v1/__std_stream
@@ -30,6 +31,7 @@ include/c++/v1/c++/v1/__functional_base_
 include/c++/v1/c++/v1/__hash_table
 include/c++/v1/c++/v1/__locale
 include/c++/v1/c++/v1/__mutex_base
+include/c++/v1/c++/v1/__refstring
 include/c++/v1/c++/v1/__split_buffer
 include/c++/v1/c++/v1/__sso_allocator
 include/c++/v1/c++/v1/__std_stream

Added: head/devel/xlocale/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/xlocale/Makefile	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,27 @@
+# $FreeBSD$
+
+PORTNAME=	xlocale
+
+COMMENT?=	Minimal xlocale implementation
+
+LICENSE=	BSD2CLAUSE
+
+MASTERDIR=	${.CURDIR}/../libc++
+
+BUILD_WRKSRC=	${WRKSRC}/src/support/solaris
+CFLAGS+=	-I${WRKSRC}/include/support/solaris
+
+PLIST=	${.CURDIR}/pkg-plist
+DESCR=	${.CURDIR}/pkg-descr
+
+do-build:
+	cd ${BUILD_WRKSRC}; ${CC} ${CFLAGS} -fPIC -c xlocale.c ; \
+	${CC} ${LDFLAGS} xlocale.o -shared -o libxlocale.so.0 -Wl,-soname=libxlocale.so.0
+
+do-install:
+	${INSTALL_LIB} ${BUILD_WRKSRC}/libxlocale.so.0 ${STAGEDIR}${PREFIX}/lib
+	${INSTALL_DATA} ${WRKSRC}/include/support/solaris/xlocale.h ${STAGEDIR}${PREFIX}/include
+	${LN} -sf libxlocale.so.0 ${STAGEDIR}${PREFIX}/lib/libxlocale.so
+
+.include "${MASTERDIR}/../libc++/Makefile.svn_rev"
+.include "${MASTERDIR}/../libc++/Makefile"

Added: head/devel/xlocale/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/xlocale/pkg-descr	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,4 @@
+Minimal xlocale implementation for Solaris. This implements the subset of the
+xlocale APIs that libc++ depends on.
+
+WWW: http://libcxx.llvm.org

Added: head/devel/xlocale/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/xlocale/pkg-plist	Tue May  6 14:38:16 2014	(r353096)
@@ -0,0 +1,3 @@
+lib/libxlocale.so.0
+lib/libxlocale.so
+include/xlocale.h


More information about the svn-ports-all mailing list