folly: 2025.04.21.00 -> 2025.09.15.00

Diff: https://github.com/facebook/folly/compare/v2025.04.21.00...v2025.09.15.00
This commit is contained in:
Emily
2025-09-16 02:26:59 +01:00
parent 16aa3ba4c9
commit 4ee6a414d2
3 changed files with 96 additions and 14 deletions
@@ -0,0 +1,34 @@
From acccee8947977178f36d117cd9d3240cbdb5f018 Mon Sep 17 00:00:00 2001
From: ihb2032 <1355790728@qq.com>
Date: Wed, 10 Sep 2025 17:31:41 +0800
Subject: [PATCH] fix(folly): Replace `__type_pack_element` in
`ForeachTest.cpp` to support GCC 14
The use of the `__type_pack_element` compiler builtin directly in function signatures in `folly/container/test/ForeachTest.cpp` causes a build failure with GCC 14. This is because the builtin is not intended for use in contexts that affect name mangling.
This commit resolves the issue by replacing the direct usage of `__type_pack_element_t` with `std::tuple_element_t`. This is a standards-compliant library trait that provides the same functionality and is safe to use in function signatures.
This change ensures that `ForeachTest` continues to compile successfully with newer versions of GCC, maintaining compiler compatibility.
Signed-off-by: lyd1992 <liuyudong@iscas.ac.cn>
Signed-off-by: ihb2032 <1355790728@qq.com>
---
folly/container/test/ForeachTest.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/folly/container/test/ForeachTest.cpp b/folly/container/test/ForeachTest.cpp
index c055f26effe..3adec1a7371 100644
--- a/folly/container/test/ForeachTest.cpp
+++ b/folly/container/test/ForeachTest.cpp
@@ -314,8 +314,8 @@ TEST(ForEach, FetchTestPreferIterator) {
template <typename...>
struct LargeTuple {};
template <size_t I, typename... T>
-type_pack_element_t<I, T...>& get(LargeTuple<T...>&) {
- static type_pack_element_t<I, T...> elem;
+std::tuple_element_t<I, std::tuple<T...>>& get(LargeTuple<T...>&) {
+ static std::tuple_element_t<I, std::tuple<T...>> elem;
return elem;
}
namespace std {
@@ -0,0 +1,22 @@
From dc06cc3162afb148c19cd0931d8fe489d639217a Mon Sep 17 00:00:00 2001
From: Uilian Ries <uilianries@gmail.com>
Date: Tue, 9 Sep 2025 16:48:26 +0200
Subject: [PATCH] Add missing header for std::runtime_error
Signed-off-by: Uilian Ries <uilianries@gmail.com>
---
folly/hash/Checksum.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/folly/hash/Checksum.cpp b/folly/hash/Checksum.cpp
index 1d42d6a6e5f..aeafdb20b1b 100644
--- a/folly/hash/Checksum.cpp
+++ b/folly/hash/Checksum.cpp
@@ -17,6 +17,7 @@
#include <folly/hash/Checksum.h>
#include <algorithm>
+#include <stdexcept>
#include <boost/crc.hpp>
+40 -14
View File
@@ -21,10 +21,10 @@
zstd,
libiberty,
libunwind,
darwinMinVersionHook,
boost,
fmt,
jemalloc,
ctestCheckHook,
@@ -41,7 +41,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "folly";
version = "2025.04.21.00";
version = "2025.09.15.00";
# split outputs to reduce downstream closure sizes
outputs = [
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "facebook";
repo = "folly";
tag = "v${finalAttrs.version}";
hash = "sha256-P2saSFVRBWt5xjAWlKmcPJT9MFV9CXFmA18dIDCO84o=";
hash = "sha256-//gx081nMFXAcUgkHQToiFHhECfLW22Fl0eXEsObxUs=";
};
nativeBuildInputs = [
@@ -77,16 +77,15 @@ stdenv.mkDerivation (finalAttrs: {
zstd
libiberty
libunwind
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(darwinMinVersionHook "13.3")
];
propagatedBuildInputs = [
# `folly-config.cmake` pulls these in.
boost
fmt
]
++ lib.optionals stdenv.hostPlatform.isLinux [
# jemalloc headers are required in include/folly/portability/Malloc.h
jemalloc
];
nativeCheckInputs = [
@@ -140,6 +139,30 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-cmake-find-glog.patch?h=folly&id=4b68f47338d4b20111e3ffa1291433120bb899f0";
hash = "sha256-QGNpS5UNEm+0PW9+agwUVILzpK9t020KXDGyP03OAwE=";
})
# Fix an upstream regression with libstdc++.
#
# See:
#
# * <https://github.com/facebook/folly/issues/2487>
# * <https://github.com/facebook/folly/commit/bdbb73e0069b4084c83b7dd9b02c3118d37e2a8d>
# * <https://github.com/facebook/folly/pull/2490>
# * <https://github.com/facebook/folly/pull/2497>
./fix-stdexcept-include.patch
# Fix a GCCincompatible use of a private trait.
#
# Per Follys own documentation:
#
# /// Under gcc, the builtin is available but does not mangle. Therefore, this
# /// trait must not be used anywhere it might be subject to mangling, such as in
# /// a return-type expression.
#
# See:
#
# * <https://github.com/facebook/folly/issues/2493>
# * <https://github.com/facebook/folly/pull/2499>
./fix-__type_pack_element.patch
];
# https://github.com/NixOS/nixpkgs/issues/144170
@@ -153,8 +176,7 @@ stdenv.mkDerivation (finalAttrs: {
'@CMAKE_INSTALL_FULL_INCLUDEDIR@'
'';
disabledtests = [
"concurrency_concurrent_hash_map_test.*/ConcurrentHashMapTest/*.StressTestReclamation"
disabledTests = [
"io_async_ssl_session_test.SSLSessionTest.BasicTest"
"io_async_ssl_session_test.SSLSessionTest.NullSessionResumptionTest"
"singleton_thread_local_test.SingletonThreadLocalDeathTest.Overload"
@@ -171,17 +193,21 @@ stdenv.mkDerivation (finalAttrs: {
"io_async_hh_wheel_timer_test.HHWheelTimerTest.NegativeTimeout"
"io_async_hh_wheel_timer_test.HHWheelTimerTest.ReschedTest"
"io_async_hh_wheel_timer_test.HHWheelTimerTest.SlowFast"
# In file included from /build/source/folly/lang/test/BitsTest.cpp:17:
# In member function 'constexpr bool folly::get_bit_at_fn::operator()(const Uint*, std::size_t) const [with Uint = short unsigned int]',
# inlined from 'void folly::BitsAllUintsTest_GetBitAtLE_Test<gtest_TypeParam_>::TestBody() [with gtest_TypeParam_ = short unsigned int]' at /build/source/folly/lang/test/BitsTest.cpp:640:5:
# /build/source/folly/lang/Bits.h:494:10: warning: 'in' is used uninitialized [-Wuninitialized]
"lang_bits_test.BitsAllUintsTest/*.GetBitAtLE"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"concurrency_cache_locality_test.CacheLocality.BenchmarkSysfs"
"concurrency_cache_locality_test.CacheLocality.LinuxActual"
"futures_future_test.Future.NoThrow"
"futures_retrying_test.RetryingTest.largeRetries"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"buffered_atomic_test.BufferedAtomic.singleThreadUnguardedAccess"
"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork"
"container_heap_vector_types_test.HeapVectorTypes.SimpleSetTes"
# No idea why these fail.
"logging_xlog_test.XlogTest.perFileCategoryHandling"
"futures_future_test.Future.makeFutureFromMoveOnlyException"
];
passthru = {