aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/libs/libcxx/Makefile6
-rw-r--r--package/libs/libcxx/patches/010-cxx17.patch2
-rw-r--r--package/libs/libcxx/patches/020-fixes.patch13
3 files changed, 17 insertions, 4 deletions
diff --git a/package/libs/libcxx/Makefile b/package/libs/libcxx/Makefile
index 1d8e502221..53b7f1eaab 100644
--- a/package/libs/libcxx/Makefile
+++ b/package/libs/libcxx/Makefile
@@ -1,3 +1,4 @@
+
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -7,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libcxx
PKG_VERSION:=9.0.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://git.llvm.org/git/libcxx
@@ -38,6 +39,7 @@ endef
CMAKE_OPTIONS += \
-DLIBCXX_CXX_ABI="libsupc++" \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/include/c++/$(CONFIG_GCC_VERSION);$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/include/c++/$(CONFIG_GCC_VERSION)/$(REAL_GNU_TARGET_NAME)" \
-DLIBCXX_ENABLE_ASSERTIONS=OFF \
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
-DLIBCXX_INCLUDE_BENCHMARKS=OFF \
@@ -47,7 +49,7 @@ CMAKE_OPTIONS += \
-DLIBCXX_HAS_MUSL_LIBC=$(if $(CONFIG_USE_MUSL),ON,OFF)
TARGET_CXXFLAGS += -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -Wno-attributes -flto
-TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -flto=jobserver
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
define Build/InstallDev
$(call Build/InstallDev/cmake,$(1))
diff --git a/package/libs/libcxx/patches/010-cxx17.patch b/package/libs/libcxx/patches/010-cxx17.patch
index c313c47611..dceec9d4f3 100644
--- a/package/libs/libcxx/patches/010-cxx17.patch
+++ b/package/libs/libcxx/patches/010-cxx17.patch
@@ -1,6 +1,6 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -524,9 +524,9 @@ remove_flags(-Wno-pedantic -pedantic-errors -pedantic)
+@@ -524,9 +524,9 @@ remove_flags(-Wno-pedantic -pedantic-err
if (LIBCXX_HAS_MUSL_LIBC OR LIBCXX_TARGETING_CLANG_CL)
# musl's pthread implementations uses volatile types in their structs which is
# not a constexpr in C++11 but is in C++14, so we use C++14 with musl.
diff --git a/package/libs/libcxx/patches/020-fixes.patch b/package/libs/libcxx/patches/020-fixes.patch
index abc630d42f..22ac494c04 100644
--- a/package/libs/libcxx/patches/020-fixes.patch
+++ b/package/libs/libcxx/patches/020-fixes.patch
@@ -1,6 +1,17 @@
+--- a/include/cmath
++++ b/include/cmath
+@@ -615,7 +615,7 @@ _Fp __lerp(_Fp __a, _Fp __b, _Fp __t) no
+
+ if (__t == 1) return __b;
+ const _Fp __x = __a + __t * (__b - __a);
+- if (__t > 1 == __b > __a)
++ if ((__t > 1) == (__b > __a))
+ return __b < __x ? __x : __b;
+ else
+ return __x < __b ? __x : __b;
--- a/include/memory
+++ b/include/memory
-@@ -1696,7 +1696,7 @@ struct _LIBCPP_TEMPLATE_VIS allocator_traits
+@@ -1696,7 +1696,7 @@ struct _LIBCPP_TEMPLATE_VIS allocator_tr
ptrdiff_t _Np = __end1 - __begin1;
__end2 -= _Np;
if (_Np > 0)