From 06d3b4b7138cabe411a51bf79f90889193aae017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Wed, 7 Sep 2022 17:32:19 -0300 Subject: [PATCH 1/2] boost: fix segfault in asio+align module. --- srcpkgs/boost/patches/align.patch | 28 ++++++++++++++++++++++++++++ srcpkgs/boost/template | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/boost/patches/align.patch diff --git a/srcpkgs/boost/patches/align.patch b/srcpkgs/boost/patches/align.patch new file mode 100644 index 000000000000..e3de2159cf6e --- /dev/null +++ b/srcpkgs/boost/patches/align.patch @@ -0,0 +1,28 @@ +This code is wrong and uses feature test macros to determine whether something +is available; FTMs shouldn't be in user code outside of top level #define's. + +This lead to an issue on musl where libtorrent-rasterbar was including this +header (via boost asio) from two different places, and segfaulting due to +mismatched implementations -- one's the posix one using posix_memalign, the +other one's the generic one that stores a pointer to itself. + +posix_memalign is always available on the libcs we support and should always be +used, so we force that. We still leave applications with the option of forcing +boost specific behavior, if they really want it. + +diff --git a/boost/align/aligned_alloc.hpp b/boost/align/aligned_alloc.hpp +index 1d81a13..f2b5137 100644 +--- a/boost/align/aligned_alloc.hpp ++++ b/boost/align/aligned_alloc.hpp +@@ -38,10 +38,8 @@ Distributed under the Boost Software License, Version 1.0. + #include + #elif defined(sun) || defined(__sun) + #include +-#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600) +-#include + #else +-#include ++#include + #endif + + #endif diff --git a/srcpkgs/boost/template b/srcpkgs/boost/template index 0d103e335b52..ef383d7f85ed 100644 --- a/srcpkgs/boost/template +++ b/srcpkgs/boost/template @@ -1,7 +1,7 @@ # Template file for 'boost' pkgname=boost version=1.80.0 -revision=1 +revision=2 wrksrc="${pkgname}_${version//\./_}" hostmakedepends="which bzip2-devel icu-devel python3-devel pkg-config" makedepends="zlib-devel bzip2-devel icu-devel python3-devel liblzma-devel From 93f57033f43927af037047d7fb111699ff7aae39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Wed, 7 Sep 2022 17:34:19 -0300 Subject: [PATCH 2/2] libtorrent-rasterbar: rebuild to fix segfault. Since asio is a header-only library, we need to rebuild its dependents. --- srcpkgs/libtorrent-rasterbar/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/libtorrent-rasterbar/template b/srcpkgs/libtorrent-rasterbar/template index 52377b39eca4..135d89b9c85a 100644 --- a/srcpkgs/libtorrent-rasterbar/template +++ b/srcpkgs/libtorrent-rasterbar/template @@ -2,7 +2,7 @@ # Breaks ABI/API without changing soname, revbump all dependants pkgname=libtorrent-rasterbar version=1.2.17 -revision=1 +revision=2 build_style=cmake configure_args="DCMAKE_CXX_STANDARD=14 -Dbuild_examples=ON -Dbuild_tools=ON -Dpython-bindings=ON"