summaryrefslogtreecommitdiff
path: root/dev-cpp/folly
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-01-22 12:52:10 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-01-22 12:52:10 +0000
commit736633fa866abdd7c155cabb02adf278c5237640 (patch)
tree847aff3277bceae8b34d29ff6c16cac3ad4b288e /dev-cpp/folly
parentf926b97bb4ca0ec30c10ee9075bd3fd3b1df2be7 (diff)
gentoo auto-resync : 22:01:2023 - 12:52:10
Diffstat (limited to 'dev-cpp/folly')
-rw-r--r--dev-cpp/folly/Manifest4
-rw-r--r--dev-cpp/folly/files/folly-2023.01.16.00-gcc13.patch24
-rw-r--r--dev-cpp/folly/files/folly-2023.01.16.00-liburing.patch54
-rw-r--r--dev-cpp/folly/folly-2023.01.16.00.ebuild104
4 files changed, 186 insertions, 0 deletions
diff --git a/dev-cpp/folly/Manifest b/dev-cpp/folly/Manifest
index c35937d36f5f..97f8b1f8ca74 100644
--- a/dev-cpp/folly/Manifest
+++ b/dev-cpp/folly/Manifest
@@ -1,6 +1,10 @@
AUX folly-2022.07.04.00-musl-fix.patch 1150 BLAKE2B 6774badf3856fa94ae69dc4ca3fb3aca628dcf3b96fd7d141967815a9a07c07349f852a35275baba7b91d60e0c61dc3e1639cab4727666fa128d0334f36815a2 SHA512 15029e25b4da1f9cfe227978a54f63c198361df665b4657ef6a80ffdd3911c80be8e6c3799c8c16ff0fcca050932155628651a6e5ed566a41174dced9e51dc58
+AUX folly-2023.01.16.00-gcc13.patch 672 BLAKE2B a6f69671bc279f69837e5c0fa5f252f242e63ae8079ddff59077b09d550946def8eba866d059a218955dd9940cb40f6cdcda6be6b4eab0f8159de98cfa774c61 SHA512 e3a79ee2d972b6b4491309f7982f1a6a85921993a70a1881d5f0d1ab6a3384fc0f543f77f57591265dce0561b98946fd81ca382e1e01e8d19765112ef3b74605
+AUX folly-2023.01.16.00-liburing.patch 2064 BLAKE2B 353a6985b1a7a237b9600227f0da479cd3bcbc240f80314adb8b1068bde75e74cc1120ddd1c4cc808d782cc18edbc9da6bf86d83c562a947588d3f1164f9ef38 SHA512 9dd91a39b670811391476dc4258ad566804d65242c437348596a7788a8daab523157c2f3ed46050eb295305845f8ad396cdb5a3152c13abebb44db012c8874fd
DIST folly-v2022.08.29.00.tar.gz 3696645 BLAKE2B c1ff618be8b6a73bf0a1249212cf904ac472711086e54da73dd631ecf002761e30496e8631d6591f51e279b736ae9b3fe50959de6b1f86f01f9d6bc08fe675fc SHA512 1437a1314e26624715a0bb781049e19300eb3a67648287b319c55ce0dfbc867a09bd9d2f0cece6fc75fc62b21899aa94b464ae49c12687be7c94fdf0c7b95790
DIST folly-v2022.09.12.00.tar.gz 3710760 BLAKE2B af59580ebee3229a6564c4b29e1d24bc405f4ae3b79751af315245c87472293f97c2d78348c92620d3196d1d41a7b55af9627cd42d23f74cbf6f00d129b3b77c SHA512 f9d0ca44f6f0c343d16e8ee5408808830b30155d42a257c48e627f9a82bb4a57568a7feeba01cf73704db68af1eee7424971540635d5dfe1728fc2ae73953940
+DIST folly-v2023.01.16.00.tar.gz 3774935 BLAKE2B e6c5925de0e571d83ac6db363a92f3d8c2fa7e911efc3db8f41b702dacd64aed5247313102ca12ca36a27a6fd8d8d5168ca8e98835f4000b425c10560a39e392 SHA512 941e09c90fab9e668d5f6b77f22caeff1da4347324c017ad64359748e18fc7c713d13f839d90a116164005041824c8a8d2039cfcc7687e23d9be8fa5acbd61ec
EBUILD folly-2022.08.29.00.ebuild 2474 BLAKE2B ba8b143ee679b37e2facd8ac30f6eee6ca8fd2606c5731757f2a2b5d6f6a9ce655d97f97317c907c5452e0e6494e81ee1dee376d97c708cc950b9e1e6090853d SHA512 81b7baddf458a0d394e158671f71f613fc7b760aea065b5ce7ab26856bdae9303462ac770b6dd067bf49f63fc776fdae4a66c9437cd9de009a2e716969e044f1
EBUILD folly-2022.09.12.00.ebuild 2475 BLAKE2B 04744830b870ccbe5cacc9108fa169f34da17ce6a05c9c795d8533d8e309ce60020084ac5d0e1c0e48e7ea28bdd2fae79facf59630737b2f36dfe90eccf758fe SHA512 0c86667f9d75ad4b6e7b9f70d376343616f9f780cfa94bf6cf82624bda963f0e1600beefbafc88357bfbf35eaaaf10eb1e8e4a287eef3eff06190e1fb0dcbf70
+EBUILD folly-2023.01.16.00.ebuild 2657 BLAKE2B 07eb73233fb72de09af512a571774001ce1d9a92408c7afe8abfe4b3aad6fa1c35a8d4e2385b7aeed1ae8ee8137aa12040f6a101ec34fb2bc0016f99b61bb79f SHA512 de2ef3fda675b660dc578693a872ee179bbb0858f10b64c350035c53901571c30292eca6ef4fecc93384844824869da35102ecf19410784b93692917991eabe4
MISC metadata.xml 319 BLAKE2B 0c8d18b906a50ee77fef7db1f99206b1c4d38dfa7913de363474609bcce38956be8d0958bc400c704ad743396db7230fb0098c83f1caa16ca998d6fd5576369c SHA512 8b077d5d5bf60f0ed5b36aef48188f431ca0675f80190beb407a58fa48fc6f8a48db161b8cde775ab6cfb54a01438fa5edddf0098e80a65b29a403a7f3a2c027
diff --git a/dev-cpp/folly/files/folly-2023.01.16.00-gcc13.patch b/dev-cpp/folly/files/folly-2023.01.16.00-gcc13.patch
new file mode 100644
index 000000000000..6779274d2fa1
--- /dev/null
+++ b/dev-cpp/folly/files/folly-2023.01.16.00-gcc13.patch
@@ -0,0 +1,24 @@
+https://github.com/facebook/folly/pull/1922
+
+From e3cba5dd4f59c695d9cbf6bd02249af7103cc300 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 22 Jan 2023 05:06:16 +0000
+Subject: [PATCH] Fix build with GCC 13 (add missing includes)
+
+GCC 13 (as usual for new compiler releases) shuffles around some
+internal includes and so <stdexcept> etc is no longer transitively included.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/folly/system/AtFork.cpp
++++ b/folly/system/AtFork.cpp
+@@ -14,6 +14,9 @@
+ * limitations under the License.
+ */
+
++#include <stdexcept>
++#include <system_error>
++
+ #include <folly/system/AtFork.h>
+
+ #include <folly/ScopeGuard.h>
+
diff --git a/dev-cpp/folly/files/folly-2023.01.16.00-liburing.patch b/dev-cpp/folly/files/folly-2023.01.16.00-liburing.patch
new file mode 100644
index 000000000000..e2a692cea50c
--- /dev/null
+++ b/dev-cpp/folly/files/folly-2023.01.16.00-liburing.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/891633
+https://github.com/facebook/folly/issues/1908
+https://github.com/facebook/folly/commit/259c9d6a4f0eb6d80e0263c2fe5d1af5bff116dc
+
+From 259c9d6a4f0eb6d80e0263c2fe5d1af5bff116dc Mon Sep 17 00:00:00 2001
+From: Dylan Yudaken <dylany@meta.com>
+Date: Mon, 16 Jan 2023 01:20:04 -0800
+Subject: [PATCH] io_uring: implement io_uring_enable_rings locally (#1915)
+
+Summary:
+Pull Request resolved: https://github.com/facebook/folly/pull/1915
+
+io_uring_enable_rings was missing from liburing upstream (see https://github.com/axboe/liburing/issues/773) which is breaking the open source build. See https://github.com/facebook/folly/issues/1908
+
+Instead just implement it locally, as it's trivial
+
+Reviewed By: dmm-fb
+
+Differential Revision: D42497664
+
+fbshipit-source-id: 7241785a36046e867f907bfe74623aaeb38c4b70
+--- a/folly/experimental/io/IoUringBackend.cpp
++++ b/folly/experimental/io/IoUringBackend.cpp
+@@ -56,6 +56,20 @@ namespace folly {
+
+ namespace {
+
++#if FOLLY_IO_URING_UP_TO_DATE
++int ioUringEnableRings(FOLLY_MAYBE_UNUSED struct io_uring* ring) {
++ // Ideally this would call ::io_uring_enable_rings directly which just runs
++ // the below however this was missing from a stable version of liburing, which
++ // means that some distributions were not able to compile it. see
++ // https://github.com/axboe/liburing/issues/773
++
++ // since it is so simple, just implement it here until the fix rolls out to an
++ // acceptable number of OSS distributions.
++ return ::io_uring_register(
++ ring->ring_fd, IORING_REGISTER_ENABLE_RINGS, nullptr, 0);
++}
++#endif
++
+ struct SignalRegistry {
+ struct SigInfo {
+ struct sigaction sa_ {};
+@@ -1360,7 +1374,7 @@ void IoUringBackend::delayedInit() {
+ if (usingDeferTaskrun_) {
+ // usingDeferTaskrun_ is guarded already on having an up to date liburing
+ #if FOLLY_IO_URING_UP_TO_DATE
+- int ret = ::io_uring_enable_rings(&ioRing_);
++ int ret = ioUringEnableRings(&ioRing_);
+ if (ret) {
+ LOG(ERROR) << "io_uring_enable_rings gave " << folly::errnoStr(-ret);
+ }
+
diff --git a/dev-cpp/folly/folly-2023.01.16.00.ebuild b/dev-cpp/folly/folly-2023.01.16.00.ebuild
new file mode 100644
index 000000000000..c8873dfdd4ee
--- /dev/null
+++ b/dev-cpp/folly/folly-2023.01.16.00.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# These must be bumped together:
+# dev-cpp/edencommon
+# dev-cpp/folly
+# dev-util/watchman
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="An open-source C++ library developed and used at Facebook"
+HOMEPAGE="https://github.com/facebook/folly"
+SRC_URI="https://github.com/facebook/folly/releases/download/v${PV}/${PN}-v${PV}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="llvm-libunwind test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="app-arch/bzip2
+ app-arch/lz4:=
+ app-arch/snappy:=
+ app-arch/xz-utils
+ app-arch/zstd:=
+ dev-cpp/gflags:=
+ dev-cpp/glog:=[gflags]
+ dev-libs/boost:=[context]
+ dev-libs/double-conversion:=
+ dev-libs/libaio
+ dev-libs/libevent:=
+ dev-libs/libfmt:=
+ dev-libs/libsodium:=
+ dev-libs/openssl:=
+ >=sys-libs/liburing-2.2:=
+ sys-libs/zlib
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ !llvm-libunwind? ( sys-libs/libunwind:= )"
+# libiberty is linked statically
+DEPEND="${RDEPEND}
+ sys-libs/binutils-libs
+ test? ( dev-cpp/gtest )"
+BDEPEND="test? ( sys-devel/clang )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2022.07.04.00-musl-fix.patch
+ "${FILESDIR}"/${PN}-2023.01.16.00-gcc13.patch
+ "${FILESDIR}"/${P}-liburing.patch
+)
+
+pkg_setup() {
+ [[ ${BUILD_TYPE} == binary ]] && return
+
+ if use test && ! tc-is-clang ; then
+ # Always build w/ Clang for now to avoid gcc ICE
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106230
+ #if [[ $(gcc-major-version) -eq 12 ]] ; then
+ # return
+ #fi
+
+ ## Only older GCC 11 is broken
+ #if [[ $(gcc-major-version) -eq 11 && $(gcc-minor-version) -ge 3 && $(gcc-micro-version) -ge 1 ]] ; then
+ # return
+ #fi
+
+ ewarn "Forcing build with Clang due to GCC bug (because tests are enabled)"
+ #ewarn "(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104008)"
+
+ export CC=${CHOST}-clang
+ export CXX=${CHOST}-clang++
+ fi
+}
+
+src_configure() {
+ # Fragile when changing compilers
+ export CCACHE_DISABLE=1
+
+ # TODO: liburing could in theory be optional but fails to link
+ local mycmakeargs=(
+ -DLIB_INSTALL_DIR="$(get_libdir)"
+
+ -DBUILD_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local myctestargs=(
+ # - timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest
+ # Long-standing known test failure
+ # TODO: report upstream
+ # - HHWheelTimerTest.HHWheelTimerTest.CancelTimeout
+ # Timeouts are fragile
+ # - concurrent_hash_map_test.*
+ # TODO: All SIGSEGV, report upstream!
+ -E "(timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest.HHWheelTimerTest.CancelTimeout|concurrent_hash_map_test.*)"
+ )
+
+ cmake_src_test
+}