Toshaan Bharvani
2 years ago
commit
e4ecee81f7
4 changed files with 353 additions and 0 deletions
@ -0,0 +1,22 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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