Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a28815cce9 | ||
|
|
dfa9e68631 | ||
|
|
1db674ec9c | ||
|
|
c825cd247b | ||
|
|
77f3f23380 | ||
|
|
597be65ab2 | ||
|
|
c93a12f360 |
3 changed files with 157 additions and 48 deletions
22
09e96049995584c3489e4bd1467313e3e85af99c.patch
Normal file
22
09e96049995584c3489e4bd1467313e3e85af99c.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
From 09e96049995584c3489e4bd1467313e3e85af99c Mon Sep 17 00:00:00 2001
|
||||
From: Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
Date: Mon, 11 Jul 2022 18:27:39 +0200
|
||||
Subject: [PATCH] Do not leak -maes -msse4.1 into pkgconfig
|
||||
|
||||
---
|
||||
CMake/AbseilHelpers.cmake | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
|
||||
index ebe9ddc87..9cd87c513 100644
|
||||
--- a/CMake/AbseilHelpers.cmake
|
||||
+++ b/CMake/AbseilHelpers.cmake
|
||||
@@ -166,6 +166,8 @@ function(absl_cc_library)
|
||||
set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
|
||||
elseif(${cflag} MATCHES "^(-W|/w[1234eo])")
|
||||
# Don't impose our warnings on others.
|
||||
+ elseif(${cflag} MATCHES "^-m")
|
||||
+ # Don't impose CPU instruction requirements on others, as the code performs feature detection on runtime.
|
||||
else()
|
||||
set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
|
||||
endif()
|
||||
44
abseil-cpp-20211102.0-disable-nominalcpufrequency.patch
Normal file
44
abseil-cpp-20211102.0-disable-nominalcpufrequency.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
From d984ddf1a64ce9fae36395b423cf6e52afc9a07a Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Wed, 16 Mar 2022 14:33:41 -0400
|
||||
Subject: [PATCH] Disable SysinfoTest.NominalCPUFrequency
|
||||
|
||||
SysinfoTest.NominalCPUFrequency in absl_sysinfo_test fails occasionally
|
||||
on aarch64, but see:
|
||||
|
||||
NominalCPUFrequency Test from SysInfoTest Suite Fails on M1 Mac
|
||||
https://github.com/abseil/abseil-cpp/issues/1053#issuecomment-961432444
|
||||
|
||||
in which an upstream author opines:
|
||||
|
||||
If the only problem you are trying to solve is a failing test, this is safe
|
||||
to ignore since this code is never called. I should consider stripping this
|
||||
test out of the open source release. NominalCPUFrequency is only called in
|
||||
code private to Google and we do have tests on the platforms we use it on.
|
||||
|
||||
We therefore disable it on all architectures, since any future failures
|
||||
will also not be meaningful.
|
||||
|
||||
Note also that this test is removed upstream in commit
|
||||
732b5580f089101ce4b8cdff55bb6461c59a6720 (internal commit
|
||||
7e8da4f14afd25d11713eee6b743ba31605332bf).
|
||||
---
|
||||
absl/base/internal/sysinfo_test.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/absl/base/internal/sysinfo_test.cc b/absl/base/internal/sysinfo_test.cc
|
||||
index 5f9e45f..1a944f0 100644
|
||||
--- a/absl/base/internal/sysinfo_test.cc
|
||||
+++ b/absl/base/internal/sysinfo_test.cc
|
||||
@@ -44,7 +44,7 @@ TEST(SysinfoTest, NumCPUs) {
|
||||
// frequency, while others do not. Since we can't predict a priori what a given
|
||||
// machine is going to do, just disable this test on POWER on Linux.
|
||||
#if !(defined(__linux) && (defined(__ppc64__) || defined(__PPC64__)))
|
||||
-TEST(SysinfoTest, NominalCPUFrequency) {
|
||||
+TEST(SysinfoTest, DISABLED_NominalCPUFrequency) {
|
||||
// Linux only exposes the CPU frequency on certain architectures, and
|
||||
// Emscripten doesn't expose it at all.
|
||||
#if defined(__linux__) && \
|
||||
--
|
||||
2.35.1
|
||||
|
||||
139
abseil-cpp.spec
139
abseil-cpp.spec
|
|
@ -3,17 +3,59 @@
|
|||
|
||||
Name: abseil-cpp
|
||||
Version: 20211102.0
|
||||
Release: 1%{?dist}
|
||||
Release: 4%{?dist}
|
||||
Summary: C++ Common Libraries
|
||||
|
||||
License: ASL 2.0
|
||||
# The entire source is Apache-2.0, except:
|
||||
# - The following files are LicenseRef-Fedora-Public-Domain:
|
||||
# absl/time/internal/cctz/src/tzfile.h
|
||||
# ** This file is in the public domain, so clarified as of
|
||||
# ** 1996-06-05 by Arthur David Olson.
|
||||
# absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab
|
||||
# # This file is in the public domain, so clarified as of
|
||||
# # 2009-05-17 by Arthur David Olson.
|
||||
# absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab
|
||||
# # This file is in the public domain.
|
||||
# Public-domain license text for these files was added to the
|
||||
# public-domain-text.txt file in fedora-license-data in commit
|
||||
# 538bc87d5e3c1cb08e81d690ce4122e1273dc9cd
|
||||
# (https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/205).
|
||||
License: Apache-2.0 AND LicenseRef-Fedora-Public-Domain
|
||||
URL: https://abseil.io
|
||||
Source0: https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
|
||||
# Remove test assertions that use ::testing::Conditional, which is not in a
|
||||
# released version of GTest. Not submitted upstream, as this is a workaround
|
||||
# rather than a fix. https://github.com/abseil/abseil-cpp/issues/1063
|
||||
Patch0: abseil-cpp-20211102.0-gtest-unreleased-features.patch
|
||||
Patch: abseil-cpp-20211102.0-gtest-unreleased-features.patch
|
||||
# SysinfoTest.NominalCPUFrequency in absl_sysinfo_test fails occasionally
|
||||
# on aarch64, but see:
|
||||
#
|
||||
# NominalCPUFrequency Test from SysInfoTest Suite Fails on M1 Mac
|
||||
# https://github.com/abseil/abseil-cpp/issues/1053#issuecomment-961432444
|
||||
#
|
||||
# in which an upstream author opines:
|
||||
#
|
||||
# If the only problem you are trying to solve is a failing test, this is safe
|
||||
# to ignore since this code is never called. I should consider stripping this
|
||||
# test out of the open source release. NominalCPUFrequency is only called in
|
||||
# code private to Google and we do have tests on the platforms we use it on.
|
||||
#
|
||||
# We therefore disable it on all architectures, since any future failures
|
||||
# will also not be meaningful.
|
||||
#
|
||||
# Note also that this test is removed upstream in commit
|
||||
# 732b5580f089101ce4b8cdff55bb6461c59a6720 (internal commit
|
||||
# 7e8da4f14afd25d11713eee6b743ba31605332bf).
|
||||
Patch: abseil-cpp-20211102.0-disable-nominalcpufrequency.patch
|
||||
# Backport upstream commit 09e96049995584c3489e4bd1467313e3e85af99c, which
|
||||
# corresponds to:
|
||||
#
|
||||
# Do not leak -maes -msse4.1 into pkgconfig
|
||||
# https://github.com/abseil/abseil-cpp/pull/1216
|
||||
#
|
||||
# Fixes RHBZ#2108658.
|
||||
Patch: https://github.com/abseil/abseil-cpp/commit/09e96049995584c3489e4bd1467313e3e85af99c.patch
|
||||
|
||||
BuildRequires: cmake
|
||||
# The default make backend would work just as well; ninja is observably faster
|
||||
|
|
@ -23,6 +65,25 @@ BuildRequires: gcc-c++
|
|||
BuildRequires: gmock-devel
|
||||
BuildRequires: gtest-devel
|
||||
|
||||
# The contents of absl/time/internal/cctz are derived from
|
||||
# https://github.com/google/cctz (https://src.fedoraproject.org/rpms/cctz), but
|
||||
# have been forked with Abseil-specific changes. It is not obvious from which
|
||||
# particular version of CCTZ these sources are derived. Upstream was asked
|
||||
# about a path to supporting a system copy as required by bundling guidelines:
|
||||
# Please comment on CCTZ bundling
|
||||
# https://github.com/abseil/abseil-cpp/discussions/1415
|
||||
# They refused, for the time being, as follows:
|
||||
# “[…] we have no plans to change this decision, but we reserve the right to
|
||||
# change our minds.”
|
||||
Provides: bundled(cctz)
|
||||
|
||||
%ifarch s390x
|
||||
# Symbolize.SymbolizeWithMultipleMaps fails in absl_symbolize_test on s390x
|
||||
# with LTO
|
||||
# https://github.com/abseil/abseil-cpp/issues/1133
|
||||
%global _lto_cflags %{nil}
|
||||
%endif
|
||||
|
||||
%description
|
||||
Abseil is an open-source collection of C++ library code designed to augment
|
||||
the C++ standard library. The Abseil library code is collected from
|
||||
|
|
@ -42,6 +103,10 @@ and we now want to provide those resources to the C++ community as a whole.
|
|||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
# Some of the headers from CCTZ are part of the -devel subpackage. See the
|
||||
# corresponding virtual Provides in the base package for full details.
|
||||
Provides: bundled(cctz)
|
||||
|
||||
%description devel
|
||||
Development headers for %{name}
|
||||
|
||||
|
|
@ -58,50 +123,6 @@ find . -type f -name '*.cc' \
|
|||
-exec gawk '/GTEST_FLAG_GET/ { print FILENAME ; nextfile }' '{}' '+' |
|
||||
xargs -r -t sed -r -i 's/GTEST_FLAG_GET/::testing::GTEST_FLAG/g'
|
||||
|
||||
# It’s extremely difficult to pass gtest options through to the test
|
||||
# executables from ctest. We could probably skip an entire executable (e.g.
|
||||
# absl_symbolize_test) by symlinking it to /bin/true, but the easiest way to
|
||||
# skip a *single test* is to patch the test source.
|
||||
|
||||
%ifarch s390x
|
||||
# TODO: why does this test fail?
|
||||
#
|
||||
# 48/167 Test #49: absl_symbolize_test ................................***Failed 0.02 sec
|
||||
# TestWithReturnAddress passed
|
||||
# [==========] Running 7 tests from 1 test suite.
|
||||
# [----------] Global test environment set-up.
|
||||
# [----------] 7 tests from Symbolize
|
||||
# [ RUN ] Symbolize.Cached
|
||||
# [ OK ] Symbolize.Cached (0 ms)
|
||||
# [ RUN ] Symbolize.Truncation
|
||||
# [ OK ] Symbolize.Truncation (0 ms)
|
||||
# [ RUN ] Symbolize.SymbolizeWithDemangling
|
||||
# [ OK ] Symbolize.SymbolizeWithDemangling (0 ms)
|
||||
# [ RUN ] Symbolize.SymbolizeSplitTextSections
|
||||
# [ OK ] Symbolize.SymbolizeSplitTextSections (0 ms)
|
||||
# [ RUN ] Symbolize.SymbolizeWithMultipleMaps
|
||||
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:315: Failure
|
||||
# Expected equality of these values:
|
||||
# "kPadding1"
|
||||
# buf
|
||||
# Which is: ""
|
||||
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:349: Failure
|
||||
# Expected equality of these values:
|
||||
# expected[i]
|
||||
# Which is: "kPadding1"
|
||||
# buf
|
||||
# Which is: ""
|
||||
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:349: Failure
|
||||
# Expected equality of these values:
|
||||
# expected[i]
|
||||
# Which is: "kPadding1"
|
||||
# buf
|
||||
# Which is: ""
|
||||
# [ FAILED ] Symbolize.SymbolizeWithMultipleMaps (1 ms)
|
||||
sed -r -i 's/\bSymbolizeWithMultipleMaps\b/DISABLED_&/' \
|
||||
absl/debugging/symbolize_test.cc
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
|
|
@ -119,7 +140,16 @@ sed -r -i 's/\bSymbolizeWithMultipleMaps\b/DISABLED_&/' \
|
|||
%cmake_install
|
||||
|
||||
%check
|
||||
%ctest
|
||||
skips='^($.'
|
||||
%ifarch ppc64le
|
||||
# [Bug]: Flaky test failures in absl_failure_signal_handler_test on ppc64le in
|
||||
# Fedora
|
||||
# https://github.com/abseil/abseil-cpp/issues/1804
|
||||
skips="${skips}|absl_failure_signal_handler_test"
|
||||
%endif
|
||||
skips="${skips})$"
|
||||
|
||||
%ctest --exclude-regex "${skips}"
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
|
|
@ -133,6 +163,19 @@ sed -r -i 's/\bSymbolizeWithMultipleMaps\b/DISABLED_&/' \
|
|||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%changelog
|
||||
* Sat Jan 25 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-4
|
||||
- Update License to SPDX
|
||||
- Indicate CCTZ bundling
|
||||
- Report and skip a test regression on ppc64le
|
||||
|
||||
* Fri Jul 29 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-3
|
||||
- Do not leak -maes -msse4.1 into pkgconfig (fix RHBZ#2108658)
|
||||
|
||||
* Tue Mar 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-2
|
||||
- Disable LTO on s390x to work around test failure
|
||||
- Skip SysinfoTest.NominalCPUFrequency on all architectures; it fails
|
||||
occasionally on aarch64, and upstream says we should not care
|
||||
|
||||
* Fri Feb 18 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-1
|
||||
- Update to 20211102.0 (close RHBZ#2019691)
|
||||
- Drop --output-on-failure, already in %%ctest expansion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue