Skip to content

Commit 2bedb53

Browse files
author
Release Manager
committed
gh-35415: `givaro`, `zeromq`: Add patches for GCC 13 support <!-- Please provide a concise, informative and self-explanatory title. --> <!-- Don't put issue numbers in the title. Put it in the Description below. --> <!-- For example, instead of "Fixes #12345", use "Add a new method to multiply two integers" --> ### 📚 Description <!-- Describe your changes here in detail. --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> Part of the fix for #35092. Tested using `tox -e docker-fedora-38-minimal -- givaro zeromq`. <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x ]`. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #35415 Reported by: Matthias Köppe Reviewer(s): Dima Pasechnik
2 parents f3acd42 + f209f0f commit 2bedb53

File tree

4 files changed

+85
-4
lines changed

4 files changed

+85
-4
lines changed

build/pkgs/gcc/spkg-configure.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ SAGE_SPKG_CONFIGURE_BASE([gcc], [
165165
# Install our own GCC if the system-provided one is older than gcc 8
166166
SAGE_SHOULD_INSTALL_GCC([you have $CXX version $GXX_VERSION, which is quite old])
167167
],
168-
[1[[3-9]].*], [
169-
# Install our own GCC if the system-provided one is newer than 12.x.
168+
[1[[4-9]].*], [
169+
# Install our own GCC if the system-provided one is newer than 13.x.
170170
# See https://github.com/sagemath/sage/issues/29456
171171
SAGE_SHOULD_INSTALL_GCC([$CXX is g++ version $GXX_VERSION, which is too recent for this version of Sage])
172172
])

build/pkgs/gfortran/spkg-configure.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ SAGE_SPKG_CONFIGURE([gfortran], [
8686
# Install our own gfortran if the system-provided one is older than gcc-4.8.
8787
SAGE_SHOULD_INSTALL_GFORTRAN([$FC is version $GFORTRAN_VERSION, which is quite old])
8888
],
89-
[1[[3-9]].*], [
90-
# Install our own gfortran if the system-provided one is newer than 12.x.
89+
[1[[4-9]].*], [
90+
# Install our own gfortran if the system-provided one is newer than 13.x.
9191
# See https://github.com/sagemath/sage/issues/29456, https://github.com/sagemath/sage/issues/31838
9292
SAGE_MUST_INSTALL_GFORTRAN([$FC is version $GFORTRAN_VERSION, which is too recent for this version of Sage])
9393
])

build/pkgs/givaro/patches/218.patch

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
From c7744bb133496cd7ac04688f345646d505e1bf52 Mon Sep 17 00:00:00 2001
2+
From: "Benjamin A. Beasley" <[email protected]>
3+
Date: Thu, 19 Jan 2023 09:12:22 -0500
4+
Subject: [PATCH] Add missing #include <cstdint> for (u)int64_t
5+
6+
Fixes failure to compile on GCC 13.
7+
---
8+
src/library/poly1/givdegree.h | 2 ++
9+
1 file changed, 2 insertions(+)
10+
11+
diff --git a/src/library/poly1/givdegree.h b/src/library/poly1/givdegree.h
12+
index 3753a425..eb85a0dd 100644
13+
--- a/src/library/poly1/givdegree.h
14+
+++ b/src/library/poly1/givdegree.h
15+
@@ -19,6 +19,8 @@
16+
#ifndef __GIVARO_poly1degree_H
17+
#define __GIVARO_poly1degree_H
18+
19+
+#include <cstdint>
20+
+
21+
#include <iostream>
22+
23+
namespace Givaro {
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
From 438d5d88392baffa6c2c5e0737d9de19d6686f0d Mon Sep 17 00:00:00 2001
2+
From: Sergei Trofimovich <[email protected]>
3+
Date: Tue, 20 Dec 2022 21:45:16 +0000
4+
Subject: [PATCH] src/secure_allocator.hpp: define missing 'rebind' type
5+
6+
`gcc-13` added an assert to standard headers to make sure custom
7+
allocators have intended implementation of rebind type instead
8+
of inherited rebind. gcc change:
9+
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7
10+
11+
Without the fix build fails on this week's `gcc-13` as:
12+
13+
[ 92%] Building CXX object tests/CMakeFiles/test_security_curve.dir/test_security_curve.cpp.o
14+
In file included from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:34,
15+
from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_uninitialized.h:64,
16+
from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/memory:69,
17+
from tests/../src/secure_allocator.hpp:42,
18+
from tests/../src/curve_client_tools.hpp:49,
19+
from tests/test_security_curve.cpp:53:
20+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h: In instantiation of 'struct std::__allocator_traits_base::__rebind<zmq::secure_allocator_t<unsigned char>, unsigned char, void>':
21+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:94:11: required by substitution of 'template<class _Alloc, class _Up> using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t<unsigned char>; _Up = unsigned char]'
22+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:228:8: required by substitution of 'template<class _Alloc> template<class _Tp> using std::allocator_traits< <template-parameter-1-1> >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t<unsigned char>]'
23+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:126:65: required from 'struct __gnu_cxx::__alloc_traits<zmq::secure_allocator_t<unsigned char>, unsigned char>::rebind<unsigned char>'
24+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:88:21: required from 'struct std::_Vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >'
25+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:423:11: required from 'class std::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >'
26+
tests/../src/curve_client_tools.hpp:64:76: required from here
27+
/<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A
28+
70 | _Tp>::value,
29+
| ^~~~~
30+
31+
The change adds trivial `rebind` definition with expected return type
32+
and satisfies conversion requirements.
33+
---
34+
src/secure_allocator.hpp | 11 +++++++++++
35+
1 file changed, 11 insertions(+)
36+
37+
diff --git a/src/secure_allocator.hpp b/src/secure_allocator.hpp
38+
index e0871dcc99..5e97368911 100644
39+
--- a/src/secure_allocator.hpp
40+
+++ b/src/secure_allocator.hpp
41+
@@ -99,6 +99,17 @@ bool operator!= (const secure_allocator_t<T> &, const secure_allocator_t<U> &)
42+
#else
43+
template <typename T> struct secure_allocator_t : std::allocator<T>
44+
{
45+
+ secure_allocator_t () ZMQ_DEFAULT;
46+
+
47+
+ template <class U>
48+
+ secure_allocator_t (const secure_allocator_t<U> &) ZMQ_NOEXCEPT
49+
+ {
50+
+ }
51+
+
52+
+ template <class U> struct rebind
53+
+ {
54+
+ typedef secure_allocator_t<U> other;
55+
+ };
56+
};
57+
#endif
58+
}

0 commit comments

Comments
 (0)