Merge pull request #21541 from veprbl/libcpp37

libc++3.7: fix to use with clang 3.9
This commit is contained in:
Daiderd Jordan
2017-01-02 00:39:30 +01:00
committed by GitHub
4 changed files with 24 additions and 9 deletions

View File

@@ -14,7 +14,10 @@ stdenv.mkDerivation rec {
cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include")
'';
patches = [ ./darwin.patch ];
patches = [
./darwin.patch
./r242056.patch
];
buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;

View File

@@ -0,0 +1,16 @@
--- a/include/string 2015/07/13 20:04:56 242056
+++ b/include/string 2015/07/18 20:40:46 242623
@@ -1936,7 +1936,12 @@
template <class _CharT, class _Traits, class _Allocator>
inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
- : __r_(__a)
+#if _LIBCPP_STD_VER <= 14
+ _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
+#else
+ _NOEXCEPT
+#endif
+: __r_(__a)
{
#if _LIBCPP_DEBUG_LEVEL >= 2
__get_db()->__insert_c(this);