Skip to content

Commit 42a9535

Browse files
committed
Update externals to build with gcc14
1 parent bac4e11 commit 42a9535

13 files changed

+164
-13
lines changed

abseil-cpp.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
### RPM external abseil-cpp 20220623.1
1+
### RPM external abseil-cpp 20230802.3
22
## INCLUDE cpp-standard
33

44
Source: https://github.com/abseil/abseil-cpp/archive/%{realversion}.tar.gz

bazel-absl.patch

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@
66
"com_google_absl": {
77
- "archive": "20211102.0.tar.gz",
88
- "sha256": "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4",
9-
+ "archive": "20230125.3.tar.gz",
10-
+ "sha256": "5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36",
9+
+ "archive": "20230802.3.tar.gz",
10+
+ "sha256": "052d1384266a3da0a4d16b644d7f9c4c2bfec4855720ac988a9407aebc06a3d8",
1111
"urls": [
1212
- "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz",
1313
- "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz",
14-
+ "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz",
15-
+ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz",
14+
+ "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/refs/tags/20230802.3.tar.gz",
15+
+ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.3.tar.gz",
1616
],
1717
"used_in": [
1818
"additional_distfiles",
1919
"test_WORKSPACE_files",
2020
],
2121
- "strip_prefix": "abseil-cpp-20211102.0",
22-
+ "strip_prefix": "abseil-cpp-20230125.3",
22+
+ "strip_prefix": "abseil-cpp-20230802.3",
2323
},
2424
"zstd-jni": {
2525
"archive": "v1.5.0-4.zip",

clhep.spec

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
### RPM external clhep 2.4.7.1
1+
### RPM external clhep 2.4.7.2
22
## INCLUDE cpp-standard
3-
%define tag d5f0b7af1c3231ca63887ecaa9500e1b02c6b0fe
3+
%define tag 61b2b231c7329f3b2cb388d0e08308085180bba9
44
%define branch cms/v%{realversion}
55
%define github_user cms-externals
66
Source: git+https://github.com/%github_user/%{n}.git?obj=%{branch}/%{tag}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}.tgz
@@ -19,16 +19,18 @@ cmake ../%{n}-%{realversion} \
1919
-G Ninja \
2020
-DCLHEP_BUILD_CXXSTD="-std=c++%{cms_cxx_standard}" \
2121
-DCMAKE_INSTALL_PREFIX:PATH="%i" \
22-
-DCMAKE_BUILD_TYPE=RelWithDebInfo
22+
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
23+
-DCLHEP_BUILD_STATIC_LIBS=OFF
2324

2425
ninja -v %{makeprocesses}
2526

2627
%install
2728
cd ../build
2829
ninja %{makeprocesses} install
2930

30-
case $(uname) in Darwin ) so=dylib ;; * ) so=so ;; esac
31-
rm -f %i/lib/libCLHEP-[A-Z]*-%realversion.$so
31+
# TODO: geant4 configuration fails if we remove extra libraries
32+
#case $(uname) in Darwin ) so=dylib ;; * ) so=so ;; esac
33+
#rm -f %i/lib/libCLHEP-[A-Z]*-%realversion.$so
3234

3335
%post
3436
%{relocateConfig}bin/Evaluator-config

dd4hep.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### RPM external dd4hep v01-31-0x
2-
%define tag 4990888b50e29a5dc0ff65fc3a6fdf17205192a5
2+
%define tag 74155cec308e842fba19cc21e01165a4553bba47
33
%define branch master
44
%define github_user AIDASoft
55

grpc-cpp23.patch

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--- a/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc.orig 2025-11-27 10:34:29.305947885 +0100
2+
+++ b/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc 2025-11-27 10:34:40.604302735 +0100
3+
@@ -148,7 +148,7 @@
4+
// to use for LRS load reporting. Caller must ensure that config_ is set
5+
// before calling.
6+
std::pair<absl::string_view, absl::string_view> GetLrsClusterKey() const {
7+
- if (!parent_->is_xds_uri_) return {parent_->server_name_, nullptr};
8+
+ if (!parent_->is_xds_uri_) return {parent_->server_name_, {}};
9+
return {
10+
parent_->config_->discovery_mechanisms()[index_].cluster_name,
11+
parent_->config_->discovery_mechanisms()[index_].eds_service_name};

grpc-no-aligned-storage.patch

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
diff --git a/include/grpcpp/impl/codegen/server_context.h b/include/grpcpp/impl/codegen/server_context.h
2+
index 5a62873ec8..46b797c814 100644
3+
--- a/include/grpcpp/impl/codegen/server_context.h
4+
+++ b/include/grpcpp/impl/codegen/server_context.h
5+
@@ -513,8 +513,7 @@ class ServerContextBase {
6+
const std::function<void(::grpc::Status s)> func_;
7+
};
8+
9+
- typename std::aligned_storage<sizeof(Reactor), alignof(Reactor)>::type
10+
- default_reactor_;
11+
+ alignas(Reactor) std::byte default_reactor_[sizeof(Reactor)];
12+
std::atomic_bool default_reactor_used_{false};
13+
std::unique_ptr<TestServerCallbackUnary> test_unary_;
14+
};
15+
diff --git a/src/core/ext/filters/http/message_compress/message_compress_filter.cc b/src/core/ext/filters/http/message_compress/message_compress_filter.cc
16+
index 09c914fab0..88d92210ef 100644
17+
--- a/src/core/ext/filters/http/message_compress/message_compress_filter.cc
18+
+++ b/src/core/ext/filters/http/message_compress/message_compress_filter.cc
19+
@@ -164,9 +164,7 @@ class CallData {
20+
grpc_linked_mdelem accept_stream_encoding_storage_;
21+
grpc_slice_buffer slices_; /**< Buffers up input slices to be compressed */
22+
// Allocate space for the replacement stream
23+
- std::aligned_storage<sizeof(grpc_core::SliceBufferByteStream),
24+
- alignof(grpc_core::SliceBufferByteStream)>::type
25+
- replacement_stream_;
26+
+ alignas(grpc_core::SliceBufferByteStream) std::byte replacement_stream_[sizeof(grpc_core::SliceBufferByteStream)];
27+
grpc_closure* original_send_message_on_complete_ = nullptr;
28+
grpc_closure send_message_on_complete_;
29+
grpc_closure on_send_message_next_done_;
30+
diff --git a/src/core/ext/filters/http/message_compress/message_decompress_filter.cc b/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
31+
index 4ab8a5638c..0c8dc75567 100644
32+
--- a/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
33+
+++ b/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
34+
@@ -123,9 +123,7 @@ class CallData {
35+
// It is initialized during construction and reset when a new stream is
36+
// created using it.
37+
grpc_slice_buffer recv_slices_;
38+
- std::aligned_storage<sizeof(SliceBufferByteStream),
39+
- alignof(SliceBufferByteStream)>::type
40+
- recv_replacement_stream_;
41+
+ alignas(SliceBufferByteStream) std::byte recv_replacement_stream_[sizeof(SliceBufferByteStream)];
42+
// Fields for handling recv_trailing_metadata_ready callback
43+
bool seen_recv_trailing_metadata_ready_ = false;
44+
grpc_closure on_recv_trailing_metadata_ready_;
45+
diff --git a/src/core/lib/gprpp/manual_constructor.h b/src/core/lib/gprpp/manual_constructor.h
46+
index 7ee13796ee..2a5d40e964 100644
47+
--- a/src/core/lib/gprpp/manual_constructor.h
48+
+++ b/src/core/lib/gprpp/manual_constructor.h
49+
@@ -159,10 +159,8 @@ class PolymorphicManualConstructor {
50+
GPR_ASSERT(static_cast<BaseType*>(p) == p);
51+
}
52+
53+
- typename std::aligned_storage<
54+
- grpc_core::manual_ctor_impl::max_size_of<DerivedTypes...>::value,
55+
- grpc_core::manual_ctor_impl::max_align_of<DerivedTypes...>::value>::type
56+
- space_;
57+
+ alignas(grpc_core::manual_ctor_impl::max_align_of<DerivedTypes...>::value)
58+
+ std::byte space_[grpc_core::manual_ctor_impl::max_size_of<DerivedTypes...>::value];
59+
};
60+
61+
template <typename Type>
62+
@@ -205,7 +203,7 @@ class ManualConstructor {
63+
void Destroy() { get()->~Type(); }
64+
65+
private:
66+
- typename std::aligned_storage<sizeof(Type), alignof(Type)>::type space_;
67+
+ alignas(Type) std::byte space_[sizeof(Type)];
68+
};
69+
70+
} // namespace grpc_core

grpc-no-std-iterator.patch

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
diff --git a/src/core/ext/filters/client_channel/lb_policy.h b/src/core/ext/filters/client_channel/lb_policy.h
2+
index c9fc1429ac..0b575c7d0c 100644
3+
--- a/src/core/ext/filters/client_channel/lb_policy.h
4+
+++ b/src/core/ext/filters/client_channel/lb_policy.h
5+
@@ -133,25 +133,28 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
6+
/// Implemented by the client channel and used by the SubchannelPicker.
7+
class MetadataInterface {
8+
public:
9+
- class iterator
10+
- : public std::iterator<
11+
- std::input_iterator_tag,
12+
- std::pair<absl::string_view, absl::string_view>, // value_type
13+
- std::ptrdiff_t, // difference_type
14+
- std::pair<absl::string_view, absl::string_view>*, // pointer
15+
- std::pair<absl::string_view, absl::string_view>& // reference
16+
- > {
17+
+ class iterator {
18+
public:
19+
+ using iterator_category = std::input_iterator_tag;
20+
+ using value_type = std::pair<absl::string_view, absl::string_view>;
21+
+ using difference_type = std::ptrdiff_t;
22+
+ using pointer = value_type*;
23+
+ using reference = value_type&;
24+
+
25+
iterator(const MetadataInterface* md, intptr_t handle)
26+
: md_(md), handle_(handle) {}
27+
+
28+
iterator& operator++() {
29+
handle_ = md_->IteratorHandleNext(handle_);
30+
return *this;
31+
}
32+
- bool operator==(iterator other) const {
33+
+
34+
+ bool operator==(const iterator& other) const {
35+
return md_ == other.md_ && handle_ == other.handle_;
36+
}
37+
- bool operator!=(iterator other) const { return !(*this == other); }
38+
+
39+
+ bool operator!=(const iterator& other) const { return !(*this == other); }
40+
+
41+
value_type operator*() const { return md_->IteratorHandleGet(handle_); }
42+
43+
private:

grpc.spec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
Source: git+https://github.com/grpc/grpc.git?obj=master/v%{realversion}&export=%{n}-%{realversion}&submodules=1&output=/%{n}-%{realversion}.tgz
55
Source1: https://patch-diff.githubusercontent.com/raw/grpc/grpc/pull/28212.patch
66
Patch1: grpc-mno-outline-atomics
7+
Patch2: grpc-no-aligned-storage
8+
Patch3: grpc-no-std-iterator
9+
Patch4: grpc-cpp23
710
BuildRequires: cmake ninja go
811
Requires: protobuf zlib pcre c-ares abseil-cpp re2
912
%define keep_archives true
@@ -13,6 +16,9 @@ Requires: protobuf zlib pcre c-ares abseil-cpp re2
1316
%setup -n %{n}-%{realversion}
1417
patch -p1 <%{_sourcedir}/28212.patch
1518
%patch1 -p1
19+
%patch2 -p1
20+
%patch3 -p1
21+
%patch4 -p1
1622

1723
%build
1824
rm -rf ../build

libfabric.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Requires: curl
66
Requires: numactl
77
Requires: rdma-core
88
Requires: xpmem
9+
BuildRequires: autotools
910

1011
%prep
1112
%setup -q -n %{n}-%{realversion}

pytorch-cluster.spec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ Requires: py3-torch %{!?without_cuda:cuda}
1616

1717
%prep
1818
%setup -n %{n}-%{realversion}
19+
#Set cms_cxx_standard to 20 as CUDA 12 doesn't yet support C++23
20+
%if "%{cms_cxx_standard}" == "23"
21+
%undefine cms_cxx_standard
22+
%define cms_cxx_standard 20
23+
%endif
24+
1925
# Make sure the default c++sdt stand is c++14
2026
grep -q 'CMAKE_CXX_STANDARD *14' CMakeLists.txt
2127
sed -i -e 's|CMAKE_CXX_STANDARD *14|CMAKE_CXX_STANDARD %{cms_cxx_standard}|' CMakeLists.txt

0 commit comments

Comments
 (0)