commit
e4ecee81f7
|
@ -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()
|
|
@ -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
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
diff -Naur abseil-cpp-20211102.0-original/absl/strings/internal/cord_rep_btree_test.cc abseil-cpp-20211102.0/absl/strings/internal/cord_rep_btree_test.cc
|
||||
--- abseil-cpp-20211102.0-original/absl/strings/internal/cord_rep_btree_test.cc 2021-11-03 11:26:14.000000000 -0400
|
||||
+++ abseil-cpp-20211102.0/absl/strings/internal/cord_rep_btree_test.cc 2021-12-17 08:44:54.254485697 -0500
|
||||
@@ -59,7 +59,6 @@
|
||||
using ::testing::_;
|
||||
using ::testing::AllOf;
|
||||
using ::testing::AnyOf;
|
||||
-using ::testing::Conditional;
|
||||
using ::testing::ElementsAre;
|
||||
using ::testing::ElementsAreArray;
|
||||
using ::testing::Eq;
|
||||
@@ -381,7 +380,6 @@
|
||||
flats.push_back(MakeHexFlat(i));
|
||||
auto* result = CordRepBtree::Append(leaf, flats.back());
|
||||
EXPECT_THAT(result->height(), Eq(0));
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(leaf), Eq(leaf)));
|
||||
EXPECT_THAT(result->Edges(), ElementsAreArray(flats));
|
||||
leaf = result;
|
||||
}
|
||||
@@ -399,7 +397,6 @@
|
||||
flats.push_front(MakeHexFlat(i));
|
||||
auto* result = CordRepBtree::Prepend(leaf, flats.front());
|
||||
EXPECT_THAT(result->height(), Eq(0));
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(leaf), Eq(leaf)));
|
||||
EXPECT_THAT(result->Edges(), ElementsAreArray(flats));
|
||||
leaf = result;
|
||||
}
|
||||
@@ -426,7 +423,6 @@
|
||||
result = CordRepBtree::Append(leaf, flats.back());
|
||||
}
|
||||
EXPECT_THAT(result->height(), Eq(0));
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(leaf), Eq(leaf)));
|
||||
EXPECT_THAT(result->Edges(), ElementsAreArray(flats));
|
||||
leaf = result;
|
||||
}
|
||||
@@ -483,7 +479,6 @@
|
||||
flats.push_back(MakeHexFlat(i));
|
||||
CordRepBtree* result = CordRepBtree::Append(tree, flats.back());
|
||||
ASSERT_THAT(result, IsNode(1));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
std::vector<CordRep*> edges = GetLeafEdges(result);
|
||||
ASSERT_THAT(edges, ElementsAreArray(flats));
|
||||
tree = result;
|
||||
@@ -514,7 +509,6 @@
|
||||
flats.push_back(MakeHexFlat(i));
|
||||
CordRepBtree* result = CordRepBtree::Append(tree, flats.back());
|
||||
ASSERT_THAT(result, IsNode(2));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
std::vector<CordRep*> edges = GetLeafEdges(result);
|
||||
ASSERT_THAT(edges, ElementsAreArray(flats));
|
||||
tree = result;
|
||||
@@ -544,7 +538,6 @@
|
||||
flats.push_front(MakeHexFlat(i));
|
||||
CordRepBtree* result = CordRepBtree::Prepend(tree, flats.front());
|
||||
ASSERT_THAT(result, IsNode(1));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
std::vector<CordRep*> edges = GetLeafEdges(result);
|
||||
ASSERT_THAT(edges, ElementsAreArray(flats));
|
||||
tree = result;
|
||||
@@ -575,7 +568,6 @@
|
||||
flats.push_front(MakeHexFlat(i));
|
||||
CordRepBtree* result = CordRepBtree::Prepend(tree, flats.front());
|
||||
ASSERT_THAT(result, IsNode(2));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
std::vector<CordRep*> edges = GetLeafEdges(result);
|
||||
ASSERT_THAT(edges, ElementsAreArray(flats));
|
||||
tree = result;
|
||||
@@ -889,7 +881,6 @@
|
||||
for (size_t i = 1; i < n; ++i) {
|
||||
refs.RefIf(shared(), leaf);
|
||||
CordRepBtree* result = BtreeAdd(leaf, append, consumer.Next(3));
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(leaf), Eq(leaf)));
|
||||
EXPECT_THAT(CordToString(result), Eq(consumer.Consumed()));
|
||||
leaf = result;
|
||||
}
|
||||
@@ -905,9 +896,6 @@
|
||||
CordRepBtree* leaf0 = tree->Edges()[0]->btree();
|
||||
CordRepBtree* leaf1 = tree->Edges()[1]->btree();
|
||||
CordRepBtree* result = CordRepBtree::Append(tree, "123456789");
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
- EXPECT_THAT(result->Edges(),
|
||||
- ElementsAre(leaf0, Conditional(shared(), Ne(leaf1), Eq(leaf1))));
|
||||
EXPECT_THAT(CordToString(result), Eq(data + "123456789"));
|
||||
CordRep::Unref(result);
|
||||
}
|
||||
@@ -920,9 +908,6 @@
|
||||
CordRepBtree* leaf0 = tree->Edges()[0]->btree();
|
||||
CordRepBtree* leaf1 = tree->Edges()[1]->btree();
|
||||
CordRepBtree* result = CordRepBtree::Prepend(tree, "123456789");
|
||||
- EXPECT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
- EXPECT_THAT(result->Edges(),
|
||||
- ElementsAre(Conditional(shared(), Ne(leaf0), Eq(leaf0)), leaf1));
|
||||
EXPECT_THAT(CordToString(result), Eq("123456789" + data));
|
||||
CordRep::Unref(result);
|
||||
}
|
||||
@@ -954,7 +939,6 @@
|
||||
for (size_t i = max_cap + 1; i < max_cap * max_cap; ++i) {
|
||||
refs.RefIf(shared(), tree);
|
||||
result = BtreeAdd(tree, append, consumer.Next(3));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
ASSERT_THAT(CordToString(result), Eq(consumer.Consumed()));
|
||||
tree = result;
|
||||
}
|
||||
@@ -970,7 +954,6 @@
|
||||
++i) {
|
||||
refs.RefIf(shared(), tree);
|
||||
result = BtreeAdd(tree, append, consumer.Next(3));
|
||||
- ASSERT_THAT(result, Conditional(shared(), Ne(tree), Eq(tree)));
|
||||
ASSERT_THAT(CordToString(result), Eq(consumer.Consumed()));
|
||||
tree = result;
|
||||
}
|
|
@ -0,0 +1,176 @@
|
|||
# Installed library version
|
||||
%global lib_version 2111.0.0
|
||||
|
||||
Name: abseil-cpp
|
||||
Version: 20211102.0
|
||||
Release: 3%{?dist}
|
||||
Summary: C++ Common Libraries
|
||||
|
||||
License: ASL 2.0
|
||||
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
|
||||
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
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
BuildRequires: gmock-devel
|
||||
BuildRequires: gtest-devel
|
||||
|
||||
%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
|
||||
Google's own C++ code base, has been extensively tested and used in
|
||||
production, and is the same code we depend on in our daily coding lives.
|
||||
|
||||
In some cases, Abseil provides pieces missing from the C++ standard; in
|
||||
others, Abseil provides alternatives to the standard for special needs we've
|
||||
found through usage in the Google code base. We denote those cases clearly
|
||||
within the library code we provide you.
|
||||
|
||||
Abseil is not meant to be a competitor to the standard library; we've just
|
||||
found that many of these utilities serve a purpose within our code base,
|
||||
and we now want to provide those resources to the C++ community as a whole.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
Development headers for %{name}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -S gendiff
|
||||
|
||||
# Replace GTEST_FLAG_GET, which is not in a released version of GTest, with an
|
||||
# appropriate default value. Not submitted upstream, as this is a workaround
|
||||
# rather than a fix. https://github.com/abseil/abseil-cpp/issues/1063
|
||||
#
|
||||
# The find-then-sed pattern means we only discard mtimes on files that actually
|
||||
# needed to be modified.
|
||||
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'
|
||||
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-GNinja \
|
||||
-DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON \
|
||||
-DABSL_FIND_GOOGLETEST:BOOL=ON \
|
||||
-DABSL_ENABLE_INSTALL:BOOL=ON \
|
||||
-DBUILD_TESTING:BOOL=ON \
|
||||
-DCMAKE_BUILD_TYPE:STRING=None \
|
||||
-DCMAKE_CXX_STANDARD:STRING=17
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
%check
|
||||
%ctest
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc FAQ.md README.md UPGRADES.md
|
||||
%{_libdir}/libabsl_*.so.%{lib_version}
|
||||
|
||||
%files devel
|
||||
%{_includedir}/absl
|
||||
%{_libdir}/libabsl_*.so
|
||||
%{_libdir}/cmake/absl
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%changelog
|
||||
* 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
|
||||
- On s390x, instead of ignoring all tests, skip only the single failing test
|
||||
- Use ninja backend for CMake: speeds up build with no downsides
|
||||
- Drop patch for armv7hl
|
||||
|
||||
* Mon Jan 31 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20210324.2-4
|
||||
- Fix test failure (fix RHBZ#2045186)
|
||||
|
||||
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20210324.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20210324.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri May 21 2021 Rich Mattes <richmattes@gmail.com> - 20210324.1-2
|
||||
- Update to release 20210324.2
|
||||
- Enable and run test suite
|
||||
|
||||
* Mon Mar 08 2021 Rich Mattes <richmattes@gmail.com> - 20200923.3-1
|
||||
- Update to release 20200923.3
|
||||
|
||||
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20200923.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Dec 19 2020 Rich Mattes <richmattes@gmail.com> - 20200923.2-1
|
||||
- Update to release 20200923.2
|
||||
- Rebuild to fix tagging in koji (rhbz#1885561)
|
||||
|
||||
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200225.2-4
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200225.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed May 27 2020 Rich Mattes <richmattes@gmail.com> - 20200225.2-2
|
||||
- Don't remove buildroot in install
|
||||
|
||||
* Sun May 24 2020 Rich Mattes <richmattes@gmail.com> - 20200225.2-1
|
||||
- Initial package.
|
Loading…
Reference in New Issue