|
141 | 141 | %{!?python3_pkgversion: %global python3_pkgversion 3} |
142 | 142 | %{!?python3_version_nodots: %global python3_version_nodots 3} |
143 | 143 | %{!?python3_version: %global python3_version 3} |
144 | | -%{!?gts_prefix: %global gts_prefix gcc-toolset-11} |
| 144 | +%if 0%{with seastar} |
| 145 | +%{!?gts_version: %global gts_version 13} |
| 146 | +%else |
| 147 | +%if 0%{?rhel} == 8 |
| 148 | +%{!?gts_version: %global gts_version 11} |
| 149 | +%endif |
| 150 | +%endif |
| 151 | + |
| 152 | +# gcc-toolset-13 seems to trigger a linker bug resulting in a segfault in SafeTimer |
| 153 | +# and perhaps elsewhere. For now, let's just disable it. See |
| 154 | +# ceph bug https://tracker.ceph.com/issues/63867 |
| 155 | +# and |
| 156 | +# gcc bug https://bugzilla.redhat.com/show_bug.cgi?id=2241339 |
| 157 | +# for details. |
| 158 | +# |
| 159 | +# Also disable lto on systems that do not support symver attribute |
| 160 | +# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 for details |
| 161 | +%if 0%{?gts_version} == 13 || (0%{?rhel} && 0%{?rhel} < 9) || ( 0%{?suse_version} && 0%{?suse_version} <= 1500 ) |
| 162 | +%define _lto_cflags %{nil} |
| 163 | +%endif |
145 | 164 |
|
146 | 165 | %if ! 0%{?suse_version} |
147 | 166 | # use multi-threaded xz compression: xz level 7 using ncpus threads |
|
173 | 192 | # do not provide gcc-annobin.so anymore, despite that they provide annobin.so. but |
174 | 193 | # redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler. |
175 | 194 | %undefine _annotated_build |
176 | | -%if 0%{?rhel} == 8 && 0%{?enable_devtoolset11:1} |
| 195 | +%if 0%{?gts_version} > 0 |
| 196 | +%if 0%{gts_version} == 13 |
| 197 | +%if 0%{?enable_devtoolset13:1} |
| 198 | +%enable_devtoolset13 |
| 199 | +%endif |
| 200 | +%else |
| 201 | +%if 0%{?enable_devtoolset11:1} |
177 | 202 | %enable_devtoolset11 |
178 | 203 | %endif |
| 204 | +%endif |
| 205 | +%endif |
179 | 206 |
|
180 | 207 | ################################################################################# |
181 | 208 | # main package definition |
@@ -229,10 +256,14 @@ BuildRequires: gcc-c++ >= 11 |
229 | 256 | %if 0%{?suse_version} == 1500 |
230 | 257 | BuildRequires: gcc11-c++ |
231 | 258 | %endif |
232 | | -%if 0%{?rhel} == 8 |
233 | | -BuildRequires: %{gts_prefix}-gcc-c++ |
234 | | -BuildRequires: %{gts_prefix}-build |
235 | | -BuildRequires: %{gts_prefix}-libatomic-devel |
| 259 | +%if 0%{?gts_version} > 0 |
| 260 | +BuildRequires: gcc-toolset-%{gts_version}-gcc-c++ |
| 261 | +%if 0%{?gts_version} >= 12 |
| 262 | +BuildRequires: gcc-toolset-%{gts_version}-runtime |
| 263 | +%else |
| 264 | +BuildRequires: gcc-toolset-%{gts_version}-build |
| 265 | +%endif |
| 266 | +BuildRequires: gcc-toolset-%{gts_version}-libatomic-devel |
236 | 267 | %endif |
237 | 268 | %if 0%{?fedora} || 0%{?rhel} == 9 || 0%{?openEuler} |
238 | 269 | BuildRequires: libatomic |
@@ -358,11 +389,15 @@ BuildRequires: libubsan |
358 | 389 | BuildRequires: libasan |
359 | 390 | BuildRequires: protobuf-devel |
360 | 391 | BuildRequires: protobuf-compiler |
361 | | -%if 0%{?rhel} == 8 |
362 | | -BuildRequires: %{gts_prefix}-annobin |
363 | | -BuildRequires: %{gts_prefix}-annobin-plugin-gcc |
364 | | -BuildRequires: %{gts_prefix}-libubsan-devel |
365 | | -BuildRequires: %{gts_prefix}-libasan-devel |
| 392 | +%if 0%{?gts_version} > 0 |
| 393 | +%if 0%{?gts_version} >= 12 |
| 394 | +BuildRequires: gcc-toolset-%{gts_version}-gcc-plugin-annobin |
| 395 | +%else |
| 396 | +BuildRequires: gcc-toolset-%{gts_version}-annobin |
| 397 | +BuildRequires: gcc-toolset-%{gts_version}-annobin-plugin-gcc |
| 398 | +%endif |
| 399 | +BuildRequires: gcc-toolset-%{gts_version}-libubsan-devel |
| 400 | +BuildRequires: gcc-toolset-%{gts_version}-libasan-devel |
366 | 401 | %endif |
367 | 402 | %endif |
368 | 403 | ################################################################################# |
@@ -1337,11 +1372,6 @@ This package provides a Ceph hardware monitoring agent. |
1337 | 1372 | %autosetup -p1 -n @TARBALL_BASENAME@ |
1338 | 1373 |
|
1339 | 1374 | %build |
1340 | | -# Disable lto on systems that do not support symver attribute |
1341 | | -# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 for details |
1342 | | -%if ( 0%{?rhel} && 0%{?rhel} < 9 ) || ( 0%{?suse_version} && 0%{?suse_version} <= 1500 ) |
1343 | | -%define _lto_cflags %{nil} |
1344 | | -%endif |
1345 | 1375 |
|
1346 | 1376 | %if 0%{with cephfs_java} |
1347 | 1377 | # Find jni.h |
@@ -1378,6 +1408,9 @@ cmake .. \ |
1378 | 1408 | %if 0%{?suse_version} == 1500 |
1379 | 1409 | -DCMAKE_C_COMPILER=gcc-11 \ |
1380 | 1410 | -DCMAKE_CXX_COMPILER=g++-11 \ |
| 1411 | +%endif |
| 1412 | +%if 0%{?gts_version} == 13 |
| 1413 | + -DCMAKE_EXE_LINKER_FLAGS=-lstdc++ \ |
1381 | 1414 | %endif |
1382 | 1415 | -DCMAKE_INSTALL_PREFIX=%{_prefix} \ |
1383 | 1416 | -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ |
|
0 commit comments