diff options
Diffstat (limited to 'repo/devel')
-rw-r--r-- | repo/devel/libunwind/libcxx-musl.patch | 28 | ||||
-rw-r--r-- | repo/devel/libunwind/libunwind-link-libssp.patch | 20 | ||||
-rw-r--r-- | repo/devel/libunwind/libunwind.xibuild | 48 | ||||
-rw-r--r-- | repo/devel/libunwind/toolchain-libunwind.xibuild | 0 |
4 files changed, 96 insertions, 0 deletions
diff --git a/repo/devel/libunwind/libcxx-musl.patch b/repo/devel/libunwind/libcxx-musl.patch new file mode 100644 index 0000000..358d4a3 --- /dev/null +++ b/repo/devel/libunwind/libcxx-musl.patch @@ -0,0 +1,28 @@ +Patch-Source: https://github.com/void-linux/void-packages/blob/74f16232621ca8dfb6d244beff1df35a6df1647f/srcpkgs/llvm12/patches/libcxx-musl.patch + +--- a/libcxx/include/locale ++++ b/libcxx/include/locale +@@ -742,7 +742,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end, + typename remove_reference<decltype(errno)>::type __save_errno = errno; + errno = 0; + char *__p2; ++#if defined(__linux__) && !defined(__GLIBC__) ++ long long __ll = strtoll(__a, &__p2, __base); ++#else + long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); ++#endif + typename remove_reference<decltype(errno)>::type __current_errno = errno; + if (__current_errno == 0) + errno = __save_errno; +@@ -782,7 +786,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, + typename remove_reference<decltype(errno)>::type __save_errno = errno; + errno = 0; + char *__p2; ++#if defined(__linux__) && !defined(__GLIBC__) ++ unsigned long long __ll = strtoull(__a, &__p2, __base); ++#else + unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); ++#endif + typename remove_reference<decltype(errno)>::type __current_errno = errno; + if (__current_errno == 0) + errno = __save_errno; diff --git a/repo/devel/libunwind/libunwind-link-libssp.patch b/repo/devel/libunwind/libunwind-link-libssp.patch new file mode 100644 index 0000000..ae819fe --- /dev/null +++ b/repo/devel/libunwind/libunwind-link-libssp.patch @@ -0,0 +1,20 @@ +--- a/libunwind/src/CMakeLists.txt ++++ b/libunwind/src/CMakeLists.txt +@@ -129,7 +129,7 @@ + else() + target_compile_options(unwind_shared PRIVATE -fno-rtti) + endif() +- target_link_libraries(unwind_shared PRIVATE ${LIBUNWIND_LIBRARIES}) ++ target_link_libraries(unwind_shared PRIVATE ${LIBUNWIND_LIBRARIES} -lssp_nonshared) + set_target_properties(unwind_shared + PROPERTIES + CXX_EXTENSIONS OFF +@@ -157,7 +157,7 @@ + else() + target_compile_options(unwind_static PRIVATE -fno-rtti) + endif() +- target_link_libraries(unwind_static PRIVATE ${LIBUNWIND_LIBRARIES}) ++ target_link_libraries(unwind_static PRIVATE ${LIBUNWIND_LIBRARIES} -lssp_nonshared) + set_target_properties(unwind_static + PROPERTIES + CXX_EXTENSIONS OFF diff --git a/repo/devel/libunwind/libunwind.xibuild b/repo/devel/libunwind/libunwind.xibuild new file mode 100644 index 0000000..067a91d --- /dev/null +++ b/repo/devel/libunwind/libunwind.xibuild @@ -0,0 +1,48 @@ +#!/bin/sh + +NAME="libunwind" +DESC="LLVM version of libunwind library" + +MAKEDEPS="cmake " +DEPS="musl " + +PKG_VER=13.0.0 +SOURCE="https://github.com/llvm/llvm-project/releases/download/llvmorg-$PKG_VER/libunwind-$PKG_VER.src.tar.xz" + +ADDITIONAL=" + https://github.com/llvm/llvm-project/releases/download/llvmorg-$PKG_VER/llvm-$PKG_VER.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-$PKG_VER/libcxx-$PKG_VER.src.tar.xz + libunwind-link-libssp.patch + libcxx-musl.patch +" + +prepare () { + tar xvf libunwind-$PKG_VER.src.tar.xz + tar xvf llvm-$PKG_VER.src.tar.xz + tar xvf libcxx-$PKG_VER.src.tar.xz + mv libunwind-$PKG_VER.src libunwind + mv llvm-$PKG_VER.src llvm + mv libcxx-$PKG_VER.src libcxx + + apply_patches +} + +build () { + cmake -B build -G Ninja -S libunwind \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DCMAKE_C_FLAGS_MINSIZEREL_INIT="$CFLAGS" \ + -DCMAKE_CXX_FLAGS_MINSIZEREL_INIT="$CXXFLAGS" \ + -DCMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT="$LDFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIBUNWIND_HAS_NODEFAULTLIBS_FLAG=OFF \ + -DLIBUNWIND_STANDALONE_BUILD=ON + cmake --build build +} + +package () { + DESTDIR="$PKG_DEST" cmake --install build + mkdir -p "$PKG_DEST"/usr/include/mach-o + cp libunwind/include/*.h "$PKG_DEST"/usr/include/ + cp libunwind/include/mach-o/*.h "$PKG_DEST"/usr/include/mach-o/ + +} diff --git a/repo/devel/libunwind/toolchain-libunwind.xibuild b/repo/devel/libunwind/toolchain-libunwind.xibuild new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/repo/devel/libunwind/toolchain-libunwind.xibuild |