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)