Hello community,

here is the log from the commit of package llvm4 for openSUSE:Factory checked 
in at 2018-03-18 21:44:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm4 (Old)
 and      /work/SRC/openSUSE:Factory/.llvm4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "llvm4"

Sun Mar 18 21:44:33 2018 rev:15 rq:586679 version:4.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm4/llvm4.changes      2018-01-31 
19:54:36.433900203 +0100
+++ /work/SRC/openSUSE:Factory/.llvm4.new/llvm4.changes 2018-03-18 
21:44:34.450298339 +0100
@@ -1,0 +2,29 @@
+Wed Mar 14 08:11:14 UTC 2018 - m...@suse.com
+
+- Remove liblldb4 and lldb4-devel from baselibs.conf. They are only
+  build for x86_64, so no point having them in baselibs.conf.
+
+-------------------------------------------------------------------
+Tue Mar 13 13:55:20 UTC 2018 - m...@suse.com
+
+- libcxx.glibc2.27.diff
+  * Fix build with glibc >= 2.27. Various locales in glibc 2.27
+    started using narrow non-break space for thousand separators.
+    libc++ tests must be adapted. 
+
+-------------------------------------------------------------------
+Wed Feb  7 14:21:48 UTC 2018 - m...@suse.com
+
+- Use %optflags, except for FORTIFY_SOURCE which is not compatible
+  with compiler-rt.
+- Exclude static libraries differently.
+  * Drop llvm-split-static-library-exports-into-their-own-export-file.diff
+  * Drop clang-split-static-library-exports-into-their-own-export-file.diff
+  * Update llvm-do-not-install-static-libraries.patch to not use
+    EXCLUDE_FROM_ALL which is not available in cmake 3.5.
+    - This fixes build on SLE12.
+- Do not force gcc6 on OpenSUSE - fixes build.
+- Reduce the amount of concurent link jobs by increasing their
+  memory requirement - to reduce stalls in OBS.
+
+-------------------------------------------------------------------

Old:
----
  clang-split-static-library-exports-into-their-own-export-file.diff
  llvm-split-static-library-exports-into-their-own-export-file.diff

New:
----
  libcxx.glibc2.27.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ llvm4.spec ++++++
--- /var/tmp/diff_new_pack.jzr2Vy/_old  2018-03-18 21:44:37.878174849 +0100
+++ /var/tmp/diff_new_pack.jzr2Vy/_new  2018-03-18 21:44:37.894174273 +0100
@@ -81,8 +81,6 @@
 Patch10:        libsanitizer.patch
 Patch11:        clang-ignore-stack-clash-protector.patch
 Patch12:        llvm-add_a_LLVM_USE_LINKER.patch
-Patch13:        
llvm-split-static-library-exports-into-their-own-export-file.diff
-Patch14:        
clang-split-static-library-exports-into-their-own-export-file.diff
 # PATCH-FIX-OPENSUSE lldb-cmake.patch -- Let us set LLDB_REVISION and fix 
ncurses include path.
 Patch15:        lldb-cmake.patch
 # PATCH-FIX-OPENSUSE lldb-add-pthread-dl-libs.patch -- Add -lpthread and -ldl 
options to the end of LDFLAGS to fix linking problems.
@@ -96,6 +94,7 @@
 Patch23:        llvm-lit-Re-apply-Fix-some-convoluted-logic-around-Unicod.patch
 Patch24:        libcxx-fix-python3-syntax-error.patch
 Patch25:        n_clang_allow_BUILD_SHARED_LIBRARY.patch
+Patch26:        libcxx.glibc2.27.diff
 BuildRequires:  binutils-devel >= 2.21.90
 BuildRequires:  binutils-gold
 BuildRequires:  cmake
@@ -116,7 +115,7 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # llvm does not work on ppc or s390
 ExcludeArch:    ppc s390
-%if 0%{?sle_version} && 0%{?sle_version} <= 130000
+%if 0%{?sle_version} && 0%{?sle_version} <= 130000 && !0%{?is_opensuse}
 BuildRequires:  gcc6
 BuildRequires:  gcc6-c++
 %else
@@ -490,7 +489,6 @@
 %patch10
 %patch11 -p1
 %patch12 -p1
-%patch13 -p0
 %patch18 -p1
 %patch19 -p1
 %patch22 -p1
@@ -498,13 +496,16 @@
 %patch25 -p1
 
 pushd cfe-%{version}.src
-%patch14 -p1
 %patch20 -p1
 %patch21 -p1
 popd
 
 pushd libcxx-%{version}.src
 %patch24 -p1
+
+%if 0%{?suse_version} > 1500
+%patch26 -p2
+%endif
 popd
 
 %if %{with lldb}
@@ -557,9 +558,14 @@
 sed -i s,LLVM_REVISION,\"%{_revsn}\",g tools/clang/lib/Basic/Version.cpp
 
 %build
-# Disable c/xx/flags as the clang fails to build with hardening right now
-#flags="%%{optflags} -fno-strict-aliasing"
-flags="-fno-strict-aliasing"
+
+# Remove the -D_FORTIFY_SOURCE=2 from optflags because llvm does not build
+# correctly with hardening. The problem is in sanitizers from compiler-rt.
+flags="%{optflags}"
+flags=${flags//-D_FORTIFY_SOURCE=?/-D_FORTIFY_SOURCE=0}
+
+flags+=" -fno-strict-aliasing"
+
 %ifarch armv6hl
 flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
 %endif
@@ -589,15 +595,21 @@
 cat /proc/meminfo
 echo "System limits:"
 ulimit -a
+max_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
 if test -n "$max_link_jobs" -a "$max_link_jobs" -gt 1 ; then
-    mem_per_process=2000000
-    max_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
-    max_jobs="$(($max_mem / $mem_per_process))"
+    mem_per_link_job=3000000
+    max_jobs="$(($max_mem / $mem_per_link_job))"
     test "$max_link_jobs" -gt "$max_jobs" && max_link_jobs="$max_jobs" && echo 
"Warning: Reducing number of link jobs to $max_jobs because of memory limits"
     test "$max_link_jobs" -le 0 && max_link_jobs=1 && echo "Warning: Not 
linking in parallel at all becuse of memory limits"
 fi
+if test -n "$max_compile_jobs" -a "$max_compile_jobs" -gt 1 ; then
+    mem_per_compile_job=1500000
+    max_jobs="$(($max_mem / $mem_per_compile_job))"
+    test "$max_compile_jobs" -gt "$max_jobs" && max_compile_jobs="$max_jobs" 
&& echo "Warning: Reducing number of compile jobs to $max_jobs because of 
memory limits"
+    test "$max_compile_jobs" -le 0 && max_compile_jobs=1 && echo "Warning: Not 
compiling in parallel at all becuse of memory limits"
+fi
 
-%if 0%{?sle_version} && 0%{?sle_version} <= 130000
+%if 0%{?sle_version} && 0%{?sle_version} <= 130000 && !0%{?is_opensuse}
 export CC=gcc-6
 export CXX=g++-6
 %endif
@@ -638,6 +650,16 @@
 ninja -v %{?_smp_mflags} clang
 cd ..
 
+# Remove files that won't be needed anymore.
+# This reduces the total amount of disk space used during build. (bnc#1074625)
+find ./stage1 -name '*.o' -delete
+find ./stage1 -name '*.a' \
+  -and -not -name 'libclang*.a' \
+  -and -not -name 'libFuzzer.a' \
+  -and -not -name 'libc++.a' \
+  -and -not -name 'libc++experimental.a' \
+  -delete
+
 %define __builddir build
 export PATH=${PWD}/stage1/bin:$PATH
 export CC=${PWD}/stage1/bin/clang
@@ -655,8 +677,8 @@
     -DLLVM_PARALLEL_COMPILE_JOBS="$max_compile_jobs" \
     -DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \
 %ifarch %{arm} s390 %{ix86}
-    -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2 -g1 -DNDEBUG" \
-    -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g1 -DNDEBUG" \
+    -DCMAKE_C_FLAGS_RELWITHDEBINFO="$flags -g1" \
+    -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$flags -g1" \
 %endif
     -DENABLE_LINKER_BUILD_ID=ON \
     -DLLVM_TABLEGEN="${LLVM_TABLEGEN}" \
@@ -774,8 +796,6 @@
 # Stuff we don't want to include
 rm %{buildroot}%{_mandir}/man1/lit.1
 
-rm %{buildroot}%{_libdir}/cmake/llvm/LLVMStaticExports*.cmake
-
 rm -rf %{buildroot}%{_includedir}/lld
 
 %if %{with libcxx}
@@ -901,6 +921,12 @@
 %endif
 %endif
 
+# Remove files that won't be needed anymore.
+# This reduces the total amount of disk space used during build. (bnc#1074625)
+# This is meant to happen after build, install and check, but before
+# extracting debuginfos or creating the final RPMs.
+rm -rf ./stage1 ./build
+
 %post -n libLLVM%{_sonum} -p /sbin/ldconfig
 %postun -n libLLVM%{_sonum} -p /sbin/ldconfig
 %post -n libclang%{_sonum} -p /sbin/ldconfig

++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.jzr2Vy/_old  2018-03-18 21:44:37.966171679 +0100
+++ /var/tmp/diff_new_pack.jzr2Vy/_new  2018-03-18 21:44:37.970171535 +0100
@@ -1,6 +1,5 @@
 libLLVM4
 libclang4
-liblldb4
 libLTO4
 llvm4-devel
   provides "llvm-devel-<targettype> = <version>"
@@ -8,7 +7,6 @@
 clang4-devel
   provides "clang-devel-<targettype> = <version>"
   conflicts "otherproviders(clang-devel-<targettype>)"
-lldb4-devel
 llvm4-LTO-devel
   provides "llvm-LTO-devel-<targettype> = <version>"
   conflicts "otherproviders(llvm-LTO-devel-<targettype>)"

++++++ libcxx.glibc2.27.diff ++++++
--- 
libc++-5.0.1.orig/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
+++ 
libc++-5.0.1/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
@@ -84,7 +84,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive
-            std::string v = "1 234 567,89 ";
+            std::string v = "1\177234\177567,89 ";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -95,7 +95,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // negative
-            std::string v = "-1 234 567,89";
+            std::string v = "-1\177234\177567,89";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -164,7 +164,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive, showbase
-            std::string v = "1 234 567,89 \u20ac";
+            std::string v = "1\177234\177567,89 \u20ac";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -175,7 +175,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // positive, showbase
-            std::string v = "1 234 567,89 \u20ac";
+            std::string v = "1\177234\177567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -188,7 +188,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "-1 234 567,89 \u20ac";
+            std::string v = "-1\177234\177567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -201,7 +201,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "1 234 567,89 EUR -";
+            std::string v = "1\177234\177567,89 EUR -";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -213,7 +213,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "1 234 567,89 EUR -";
+            std::string v = "1\177234\177567,89 EUR -";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -251,7 +251,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive
-            std::string v = "1 234 567,89 ";
+            std::string v = "1\177234\177567,89 ";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -262,7 +262,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // negative
-            std::string v = "-1 234 567,89";
+            std::string v = "-1\177234\177567,89";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -331,7 +331,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive, showbase
-            std::string v = "1 234 567,89 EUR";
+            std::string v = "1\177234\177567,89 EUR";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -342,7 +342,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // positive, showbase
-            std::string v = "1 234 567,89 EUR";
+            std::string v = "1\177234\177567,89 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -355,7 +355,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "-1 234 567,89 EUR";
+            std::string v = "-1\177234\177567,89 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -368,7 +368,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "1 234 567,89 Eu-";
+            std::string v = "1\177234\177567,89 Eu-";
             showbase(ios);
             typedef input_iterator<const char*> I;
             long double ex;
@@ -380,7 +380,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::string v = "1 234 567,89 Eu-";
+            std::string v = "1\177234\177567,89 Eu-";
             typedef input_iterator<const char*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -417,7 +417,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive
-            std::wstring v = L"1 234 567,89 ";
+            std::wstring v = L"1\u202f234\u202f567,89 ";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -428,7 +428,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // negative
-            std::wstring v = L"-1 234 567,89";
+            std::wstring v = L"-1\u202f234\u202f567,89";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -497,7 +497,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive, showbase
-            std::wstring v = L"1 234 567,89 \u20ac";
+            std::wstring v = L"1\u202f234\u202f567,89 \u20ac";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -508,7 +508,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // positive, showbase
-            std::wstring v = L"1 234 567,89 \u20ac";
+            std::wstring v = L"1\u202f234\u202f567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -521,7 +521,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"-1 234 567,89 \u20ac";
+            std::wstring v = L"-1\u202f234\u202f567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -534,7 +534,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"1 234 567,89 EUR -";
+            std::wstring v = L"1\u202f234\u202f567,89 EUR -";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -546,7 +546,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"1 234 567,89 EUR -";
+            std::wstring v = L"1\u202f234\u202f567,89 EUR -";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -583,7 +583,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive
-            std::wstring v = L"1 234 567,89 ";
+            std::wstring v = L"1\u202f234\u202f567,89 ";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -594,7 +594,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // negative
-            std::wstring v = L"-1 234 567,89";
+            std::wstring v = L"-1\u202f234\u202f567,89";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -663,7 +663,7 @@ int main()
             assert(ex == -1);
         }
         {   // positive, showbase
-            std::wstring v = L"1 234 567,89 EUR";
+            std::wstring v = L"1\u202f234\u202f567,89 EUR";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
@@ -674,7 +674,7 @@ int main()
             assert(ex == 123456789);
         }
         {   // positive, showbase
-            std::wstring v = L"1 234 567,89 EUR";
+            std::wstring v = L"1\u202f234\u202f567,89 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -687,7 +687,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"-1 234 567,89 EUR";
+            std::wstring v = L"-1\u202f234\u202f567,89 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -700,7 +700,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"1 234 567,89 Eu-";
+            std::wstring v = L"1\u202f234\u202f567,89 Eu-";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
             long double ex;
@@ -712,7 +712,7 @@ int main()
             noshowbase(ios);
         }
         {   // negative, showbase
-            std::wstring v = L"1 234 567,89 Eu-";
+            std::wstring v = L"1\u202f234\u202f567,89 Eu-";
             typedef input_iterator<const wchar_t*> I;
             long double ex;
             std::ios_base::iostate err = std::ios_base::goodbit;
--- 
libc++-5.0.1.orig/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
+++ 
libc++-5.0.1/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
@@ -83,7 +83,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "1 234 567,89");
+        assert(ex == "1\177234\177567,89");
     }
     {   // negative
         long double v = -123456789;
@@ -91,7 +91,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89");
+        assert(ex == "-1\177234\177567,89");
     }
     {   // zero, showbase
         long double v = 0;
@@ -118,7 +118,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "1 234 567,89 \u20ac");
+        assert(ex == "1\177234\177567,89 \u20ac");
     }
     {   // negative, showbase
         long double v = -123456789;
@@ -127,7 +127,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89 \u20ac");
+        assert(ex == "-1\177234\177567,89 \u20ac");
     }
     {   // negative, showbase, left
         long double v = -123456789;
@@ -138,7 +138,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89 \u20ac   ");
+        assert(ex == "-1\177234\177567,89 \u20ac   ");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, internal
@@ -150,7 +150,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89    \u20ac");
+        assert(ex == "-1\177234\177567,89    \u20ac");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, right
@@ -162,7 +162,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             false, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "   -1 234 567,89 \u20ac");
+        assert(ex == "   -1\177234\177567,89 \u20ac");
         assert(ios.width() == 0);
     }
 
@@ -191,7 +191,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "1 234 567,89");
+        assert(ex == "1\177234\177567,89");
     }
     {   // negative
         long double v = -123456789;
@@ -199,7 +199,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89");
+        assert(ex == "-1\177234\177567,89");
     }
     {   // zero, showbase
         long double v = 0;
@@ -226,7 +226,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "1 234 567,89 EUR");
+        assert(ex == "1\177234\177567,89 EUR");
     }
     {   // negative, showbase
         long double v = -123456789;
@@ -235,7 +235,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, '*', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89 EUR");
+        assert(ex == "-1\177234\177567,89 EUR");
     }
     {   // negative, showbase, left
         long double v = -123456789;
@@ -246,7 +246,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89 EUR   ");
+        assert(ex == "-1\177234\177567,89 EUR   ");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, internal
@@ -258,7 +258,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "-1 234 567,89    EUR");
+        assert(ex == "-1\177234\177567,89    EUR");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, right
@@ -270,7 +270,7 @@ int main()
         output_iterator<char*> iter = f.put(output_iterator<char*>(str),
                                             true, ios, ' ', v);
         std::string ex(str, iter.base());
-        assert(ex == "   -1 234 567,89 EUR");
+        assert(ex == "   -1\177234\177567,89 EUR");
         assert(ios.width() == 0);
     }
 }
@@ -301,7 +301,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"1 234 567,89");
+        assert(ex == L"1\u202f234\u202f567,89");
     }
     {   // negative
         long double v = -123456789;
@@ -309,7 +309,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89");
+        assert(ex == L"-1\u202f234\u202f567,89");
     }
     {   // zero, showbase
         long double v = 0;
@@ -336,7 +336,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"1 234 567,89 \u20ac");
+        assert(ex == L"1\u202f234\u202f567,89 \u20ac");
     }
     {   // negative, showbase
         long double v = -123456789;
@@ -345,7 +345,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89 \u20ac");
+        assert(ex == L"-1\u202f234\u202f567,89 \u20ac");
     }
     {   // negative, showbase, left
         long double v = -123456789;
@@ -356,7 +356,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89 \u20ac     ");
+        assert(ex == L"-1\u202f234\u202f567,89 \u20ac     ");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, internal
@@ -368,7 +368,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89      \u20ac");
+        assert(ex == L"-1\u202f234\u202f567,89      \u20ac");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, right
@@ -380,7 +380,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             false, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"     -1 234 567,89 \u20ac");
+        assert(ex == L"     -1\u202f234\u202f567,89 \u20ac");
         assert(ios.width() == 0);
     }
 
@@ -409,7 +409,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"1 234 567,89");
+        assert(ex == L"1\u202f234\u202f567,89");
     }
     {   // negative
         long double v = -123456789;
@@ -417,7 +417,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89");
+        assert(ex == L"-1\u202f234\u202f567,89");
     }
     {   // zero, showbase
         long double v = 0;
@@ -444,7 +444,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"1 234 567,89 EUR");
+        assert(ex == L"1\u202f234\u202f567,89 EUR");
     }
     {   // negative, showbase
         long double v = -123456789;
@@ -453,7 +453,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, '*', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89 EUR");
+        assert(ex == L"-1\u202f234\u202f567,89 EUR");
     }
     {   // negative, showbase, left
         long double v = -123456789;
@@ -464,7 +464,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89 EUR   ");
+        assert(ex == L"-1\u202f234\u202f567,89 EUR   ");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, internal
@@ -476,7 +476,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"-1 234 567,89    EUR");
+        assert(ex == L"-1\u202f234\u202f567,89    EUR");
         assert(ios.width() == 0);
     }
     {   // negative, showbase, right
@@ -488,7 +488,7 @@ int main()
         output_iterator<wchar_t*> iter = f.put(output_iterator<wchar_t*>(str),
                                             true, ios, ' ', v);
         std::wstring ex(str, iter.base());
-        assert(ex == L"   -1 234 567,89 EUR");
+        assert(ex == L"   -1\u202f234\u202f567,89 EUR");
         assert(ios.width() == 0);
     }
 }
--- 
libc++-5.0.1.orig/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
+++ 
libc++-5.0.1/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
@@ -109,29 +109,21 @@ int main()
         Fwt f(LOCALE_fr_FR_UTF_8, 1);
         assert(f.decimal_point() == L',');
     }
-// GLIBC 2.23 uses '.' as the decimal point while other C libraries use ','
-#ifndef TEST_HAS_GLIBC
-    const char sep = ',';
-    const wchar_t wsep = L',';
-#else
-    const char sep = '.';
-    const wchar_t wsep = L'.';
-#endif
     {
         Fnf f(LOCALE_ru_RU_UTF_8, 1);
-        assert(f.decimal_point() == sep);
+        assert(f.decimal_point() == ',');
     }
     {
         Fnt f(LOCALE_ru_RU_UTF_8, 1);
-        assert(f.decimal_point() == sep);
+        assert(f.decimal_point() == ',');
     }
     {
         Fwf f(LOCALE_ru_RU_UTF_8, 1);
-        assert(f.decimal_point() == wsep);
+        assert(f.decimal_point() == L',');
     }
     {
         Fwt f(LOCALE_ru_RU_UTF_8, 1);
-        assert(f.decimal_point() == wsep);
+        assert(f.decimal_point() == L',');
     }
 
     {
--- 
libc++-5.0.1.orig/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
+++ 
libc++-5.0.1/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
@@ -95,19 +95,19 @@ int main()
 
     {
         Fnf f(LOCALE_fr_FR_UTF_8, 1);
-        assert(f.thousands_sep() == ' ');
+        assert(f.thousands_sep() == '\177');
     }
     {
         Fnt f(LOCALE_fr_FR_UTF_8, 1);
-        assert(f.thousands_sep() == ' ');
+        assert(f.thousands_sep() == '\177');
     }
     {
         Fwf f(LOCALE_fr_FR_UTF_8, 1);
-        assert(f.thousands_sep() == L' ');
+        assert(f.thousands_sep() == L'\u202F');
     }
     {
         Fwt f(LOCALE_fr_FR_UTF_8, 1);
-        assert(f.thousands_sep() == L' ');
+        assert(f.thousands_sep() == L'\u202F');
     }
 // The below tests work around GLIBC's use of U00A0 as mon_thousands_sep
 // and U002E as mon_decimal_point.
@@ -119,8 +119,8 @@ int main()
 #else
     // FIXME libc++ specifically works around \u00A0 by translating it into
     // a regular space.
-    const char sep = ' ';
-    const wchar_t wsep = L'\u00A0';
+    const char sep = '\177';
+    const wchar_t wsep = L'\u202F';
 #endif
     {
         Fnf f(LOCALE_ru_RU_UTF_8, 1);
--- 
libc++-5.0.1.orig/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
+++ 
libc++-5.0.1/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
@@ -54,8 +54,8 @@ int main()
     {
         std::locale l(LOCALE_fr_FR_UTF_8);
 #if defined(TEST_HAS_GLIBC)
-        const char sep = ' ';
-        const wchar_t wsep = L' ';
+        const char sep = ',';
+        const wchar_t wsep = L'\u202F';
 #else
         const char sep = ',';
         const wchar_t wsep = L',';
++++++ llvm-do-not-install-static-libraries.patch ++++++
--- /var/tmp/diff_new_pack.jzr2Vy/_old  2018-03-18 21:44:38.046168797 +0100
+++ /var/tmp/diff_new_pack.jzr2Vy/_new  2018-03-18 21:44:38.050168653 +0100
@@ -6,7 +6,7 @@
 ===================================================================
 --- llvm-4.0.1.src.orig/cmake/modules/AddLLVM.cmake
 +++ llvm-4.0.1.src/cmake/modules/AddLLVM.cmake
-@@ -595,10 +595,18 @@ macro(add_llvm_library name)
+@@ -591,10 +591,19 @@ macro(add_llvm_library name)
          set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
        endif()
  
@@ -20,11 +20,12 @@
 +                ${install_type} DESTINATION ${install_dir}
 +                COMPONENT ${name})
 +      else()
-+        install(TARGETS ${name}
-+                ${export_to_llvmexports}
-+                ${install_type} DESTINATION ${install_dir}
-+                COMPONENT ${name}
-+                EXCLUDE_FROM_ALL)
++        if(NOT LLVM_BUILD_LLVM_DYLIB)
++          install(TARGETS ${name}
++                  ${export_to_llvmexports}
++                  ${install_type} DESTINATION ${install_dir}
++                  COMPONENT ${name})
++        endif()
 +      endif()
  
        if (NOT CMAKE_CONFIGURATION_TYPES)
@@ -51,13 +52,20 @@
 ===================================================================
 --- llvm-4.0.1.src.orig/lldb-4.0.1.src/cmake/modules/AddLLDB.cmake
 +++ llvm-4.0.1.src/lldb-4.0.1.src/cmake/modules/AddLLDB.cmake
-@@ -88,7 +88,8 @@ function(add_lldb_library name)
-         install(TARGETS ${name}
-           COMPONENT ${name}
-           LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+@@ -85,10 +85,12 @@ function(add_lldb_library name)
+           LIBRARY DESTINATION ${out_dir}
+           ARCHIVE DESTINATION ${out_dir})
+       else()
+-        install(TARGETS ${name}
+-          COMPONENT ${name}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
 -          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-+          EXCLUDE_FROM_ALL)
++        if(NOT LLVM_BUILD_LLVM_DYLIB)
++          install(TARGETS ${name}
++            COMPONENT ${name}
++            LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
++            ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++        endif()
        endif()
        if (NOT CMAKE_CONFIGURATION_TYPES)
          add_custom_target(install-${name}


Reply via email to