On Sat, Jun 6, 2020 at 12:14 PM Ian Cooper <[email protected]> wrote: > > Since I gave this patch more than just a casual glance and tested it on > multiple build configurations, it might make sense that I indicate so. What's > more appropriate in this case? A "Tested-by" or a "Reviewed-by"? The latter. > > > -----Original Message----- > > From: openwrt-devel [mailto:[email protected]] > > On Behalf Of Rosen Penev > > Sent: 06 June 2020 19:52 > > To: [email protected] > > Subject: [OpenWrt-Devel] [PATCH 2/2] libcxx: update to 10.0.0 > > > > Switched to upstream tarballs. > > > > Switched to libcxxabi as using libsupc++ is quite wonky. > > > > Fixed description. > > > > Removed patches. The fixes are cosmetic. > > > > Added ssp patch. This one is needed for i386 and powerpc under musl. > > > > Compile tested every C++ package in the tree with the exception of > > several boost packages. There's something broken with boost. > > > > Ran tested with gerbera. > > > > Signed-off-by: Rosen Penev <[email protected]> > > --- > > package/libs/libcxx/Makefile | 18 +++++------ > > package/libs/libcxx/files/g++-libcxx | 2 +- > > package/libs/libcxx/patches/010-cxx17.patch | 14 --------- > > package/libs/libcxx/patches/010-ssp.patch | 13 ++++++++ > > package/libs/libcxx/patches/020-fixes.patch | 35 --------------------- > > 5 files changed, 23 insertions(+), 59 deletions(-) > > delete mode 100644 package/libs/libcxx/patches/010-cxx17.patch > > create mode 100644 package/libs/libcxx/patches/010-ssp.patch > > delete mode 100644 package/libs/libcxx/patches/020-fixes.patch > > > > diff --git a/package/libs/libcxx/Makefile b/package/libs/libcxx/Makefile > > index 8343cbb427..3809bea651 100644 > > --- a/package/libs/libcxx/Makefile > > +++ b/package/libs/libcxx/Makefile > > @@ -7,19 +7,20 @@ > > include $(TOPDIR)/rules.mk > > > > PKG_NAME:=libcxx > > -PKG_VERSION:=9.0.1 > > -PKG_RELEASE:=4 > > +PKG_VERSION:=10.0.0 > > +PKG_RELEASE:=1 > > > > -PKG_SOURCE_PROTO:=git > > -PKG_SOURCE_URL:=https://git.llvm.org/git/libcxx > > -PKG_SOURCE_VERSION:=2076f539f410805ef88692b9c0ce0a0b882a7680 > > - > > PKG_MIRROR_HASH:=d527880a18dec9109575c76717cf5288fb91c11381b9d26 > > 1cae2e5bebcbdab2e > > +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).src.tar.xz > > +PKG_SOURCE_URL:=https://github.com/llvm/llvm- > > project/releases/download/llvmorg-$(PKG_VERSION) > > +PKG_HASH:=270f8a3f176f1981b0f6ab8aa556720988872ec2b48ed3b605d0ce > > d8d09156c7 > > +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION).src > > > > PKG_MAINTAINER:=Rosen Penev <[email protected]> > > PKG_LICENSE:=MIT > > PKG_LICENSE_FILES:=LICENSE.txt > > > > PKG_BUILD_PARALLEL:=1 > > +PKG_BUILD_DEPENDS:=libcxxabi > > CMAKE_BINARY_SUBDIR:=build > > > > include $(INCLUDE_DIR)/package.mk > > @@ -34,12 +35,11 @@ define Package/libcxx > > endef > > > > define Package/libcxx/description > > - LLVM C++ library targeting C++11 and above > > + libc++ is an implementation of the C++ standard library, targeting C++11, > > C++14 and above. > > endef > > > > CMAKE_OPTIONS += \ > > - -DLIBCXX_CXX_ABI="libsupc++" \ > > - - > > DLIBCXX_CXX_ABI_INCLUDE_PATHS="$(TOOLCHAIN_DIR)/$(REAL_GNU_TA > > RGET_NAME)/include/c++/$(CONFIG_GCC_VERSION);$(TOOLCHAIN_DIR)/$ > > (REAL_GNU_TARGET_NAME)/include/c++/$(CONFIG_GCC_VERSION)/$(REA > > L_GNU_TARGET_NAME)" \ > > + -DLIBCXX_CXX_ABI="libcxxabi" \ > > -DLIBCXX_ENABLE_ASSERTIONS=OFF \ > > -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \ > > -DLIBCXX_INCLUDE_BENCHMARKS=OFF \ > > diff --git a/package/libs/libcxx/files/g++-libcxx > > b/package/libs/libcxx/files/g++-libcxx > > index 81ca46eb0e..f37afb2fd5 100755 > > --- a/package/libs/libcxx/files/g++-libcxx > > +++ b/package/libs/libcxx/files/g++-libcxx > > @@ -13,7 +13,7 @@ do > > -static) [ "$WRAPPER_LIBS" != "-lc -lgcc_s -lssp_nonshared -lgcc_eh" ] > > && WRAPPER_LIBS="-lc -lgcc_s -lssp_nonshared -lgcc_eh" ;; > > esac > > done > > -[ "$WRAPPER_INCLIB" = "Y" ] && WRAPPER_OPTIONS="-nodefaultlibs > > $WRAPPER_LIBDIR -lc++ -lsupc++ $WRAPPER_LIBS" > > +[ "$WRAPPER_INCLIB" = "Y" ] && WRAPPER_OPTIONS="-nodefaultlibs > > $WRAPPER_LIBDIR -lc++ -lc++abi $WRAPPER_LIBS" > > > > exec CXX -fno-builtin -nostdinc++ -DGCC_HASCLASSVISIBILITY > > "$WRAPPER_INCLUDEDIR" "$@" $WRAPPER_OPTIONS > > > > diff --git a/package/libs/libcxx/patches/010-cxx17.patch > > b/package/libs/libcxx/patches/010-cxx17.patch > > deleted file mode 100644 > > index dceec9d4f3..0000000000 > > --- a/package/libs/libcxx/patches/010-cxx17.patch > > +++ /dev/null > > @@ -1,14 +0,0 @@ > > ---- a/CMakeLists.txt > > -+++ b/CMakeLists.txt > > -@@ -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. > > -- set(LIBCXX_STANDARD_VER c++14 CACHE STRING "internal option to > > change build dialect") > > -+ set(LIBCXX_STANDARD_VER c++2a CACHE STRING "internal option to > > change build dialect") > > - else() > > -- set(LIBCXX_STANDARD_VER c++11 CACHE STRING "internal option to > > change build dialect") > > -+ set(LIBCXX_STANDARD_VER c++2a CACHE STRING "internal option to > > change build dialect") > > - endif() > > - add_compile_flags_if_supported(-std=${LIBCXX_STANDARD_VER}) > > - add_compile_flags_if_supported("/std:${LIBCXX_STANDARD_VER}") > > diff --git a/package/libs/libcxx/patches/010-ssp.patch > > b/package/libs/libcxx/patches/010-ssp.patch > > new file mode 100644 > > index 0000000000..c9dc90c7f2 > > --- /dev/null > > +++ b/package/libs/libcxx/patches/010-ssp.patch > > @@ -0,0 +1,13 @@ > > +--- a/CMakeLists.txt > > ++++ b/CMakeLists.txt > > +@@ -760,6 +760,10 @@ function(cxx_link_system_libraries target) > > + target_link_libraries(${target} PRIVATE atomic) > > + endif() > > + > > ++ if (LIBCXX_HAS_MUSL_LIBC) > > ++ target_link_libraries(${target} PRIVATE ssp_nonshared) > > ++ endif() > > ++ > > + if (MINGW) > > + target_link_libraries(${target} PRIVATE "${MINGW_LIBRARIES}") > > + endif() > > diff --git a/package/libs/libcxx/patches/020-fixes.patch > > b/package/libs/libcxx/patches/020-fixes.patch > > deleted file mode 100644 > > index 22ac494c04..0000000000 > > --- a/package/libs/libcxx/patches/020-fixes.patch > > +++ /dev/null > > @@ -1,35 +0,0 @@ > > ---- 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_tr > > - ptrdiff_t _Np = __end1 - __begin1; > > - __end2 -= _Np; > > - if (_Np > 0) > > -- _VSTD::memcpy(__end2, __begin1, _Np * sizeof(_Tp)); > > -+ __end2 = __begin1; > > - } > > - > > - private: > > ---- a/src/filesystem/filesystem_common.h > > -+++ b/src/filesystem/filesystem_common.h > > -@@ -197,8 +197,8 @@ private: > > - using chrono::duration; > > - using chrono::duration_cast; > > - > > --using TimeSpec = struct ::timespec; > > --using StatT = struct ::stat; > > -+using TimeSpec = struct timespec; > > -+using StatT = struct stat; > > - > > - template <class FileTimeT, class TimeT, > > - bool IsFloat = is_floating_point<typename > > FileTimeT::rep>::value> > > -- > > 2.26.2 > > > > > > _______________________________________________ > > openwrt-devel mailing list > > [email protected] > > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
