Compare commits
37 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5dc15e5f19 | ||
|
|
893317922c | ||
|
|
07413ab010 | ||
|
|
5205ac8ad2 | ||
|
|
b637f17a22 | ||
|
|
cd61e639b5 | ||
|
|
d3dff91b47 | ||
|
|
c492497a4f | ||
|
|
b3c8ea51b1 | ||
|
|
8820887069 | ||
|
|
0e3dfdaeae | ||
|
|
a129e5dcf7 | ||
|
|
3c0947e8e6 | ||
|
|
0a5109b6ad | ||
|
|
f73b91d988 | ||
|
|
06fd1bd32e | ||
|
|
ca0a3d5d75 | ||
|
|
33a4b5c728 | ||
|
|
d96a8dec9b | ||
|
|
75c58ab1c6 | ||
|
|
8c7c252cff | ||
|
|
dd755b6b6a | ||
|
|
2f3f17bf9e |
||
|
|
ff11d26a0a | ||
|
|
66b7bf6296 | ||
|
|
32d65f9265 | ||
|
|
133248c1fa | ||
|
|
b38e94481e | ||
|
|
bbab5c1d36 | ||
|
|
f51fdd9a79 | ||
|
|
6f91ede9ba | ||
|
|
8f4c1ccfd8 | ||
|
|
10ba60bff7 | ||
|
|
064ccdb387 | ||
|
|
3632c58dcc | ||
|
|
e32733eef4 | ||
|
|
e2ad089b32 |
7 changed files with 372 additions and 872 deletions
15
.gitignore
vendored
15
.gitignore
vendored
|
|
@ -5,3 +5,18 @@
|
||||||
/abseil-cpp-20211102.0.tar.gz
|
/abseil-cpp-20211102.0.tar.gz
|
||||||
/abseil-cpp-20220623.0.tar.gz
|
/abseil-cpp-20220623.0.tar.gz
|
||||||
/abseil-cpp-20220623.1.tar.gz
|
/abseil-cpp-20220623.1.tar.gz
|
||||||
|
/abseil-cpp-20230125.1.tar.gz
|
||||||
|
/abseil-cpp-20230125.2.tar.gz
|
||||||
|
/abseil-cpp-20230125.3.tar.gz
|
||||||
|
/abseil-cpp-20230802.0.tar.gz
|
||||||
|
/abseil-cpp-20230802.1.tar.gz
|
||||||
|
/abseil-cpp-20240116.0.tar.gz
|
||||||
|
/abseil-cpp-20240116.2.tar.gz
|
||||||
|
/abseil-cpp-20240722.0.tar.gz
|
||||||
|
/abseil-cpp-20240722.1.tar.gz
|
||||||
|
/abseil-cpp-20250127.0.tar.gz
|
||||||
|
/abseil-cpp-20250127.1.tar.gz
|
||||||
|
/abseil-cpp-20250512.0.tar.gz
|
||||||
|
/abseil-cpp-20250512.1.tar.gz
|
||||||
|
/abseil-cpp-20250814.0.tar.gz
|
||||||
|
/abseil-cpp-20250814.1.tar.gz
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
From 8e8c72e1cb92d63aa2aaa7f9d8ccb059250928d1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||||
|
Date: Fri, 9 Jan 2026 07:37:42 +0000
|
||||||
|
Subject: [PATCH] =?UTF-8?q?Omit=20the=20=E2=80=9Cbind=E2=80=9D=20block=20i?=
|
||||||
|
=?UTF-8?q?n=20test=20Test=20Mutex::FunctorCondition?=
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Work around failure to compile with GCC 16,
|
||||||
|
https://github.com/abseil/abseil-cpp/issues/1992.
|
||||||
|
---
|
||||||
|
absl/synchronization/mutex_test.cc | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/absl/synchronization/mutex_test.cc b/absl/synchronization/mutex_test.cc
|
||||||
|
index 793acf8c..7acd2e56 100644
|
||||||
|
--- a/absl/synchronization/mutex_test.cc
|
||||||
|
+++ b/absl/synchronization/mutex_test.cc
|
||||||
|
@@ -1022,6 +1022,7 @@ TEST(Mutex, FunctorCondition) {
|
||||||
|
EXPECT_TRUE(c.Eval());
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
{ // bind
|
||||||
|
int value = 0;
|
||||||
|
auto is_positive = std::bind(std::less<int>(), 0, std::cref(value));
|
||||||
|
@@ -1030,6 +1031,7 @@ TEST(Mutex, FunctorCondition) {
|
||||||
|
value = 1;
|
||||||
|
EXPECT_TRUE(c.Eval());
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{ // std::function
|
||||||
|
int value = 3;
|
||||||
|
--
|
||||||
|
2.52.0
|
||||||
|
|
||||||
|
|
@ -1,760 +0,0 @@
|
||||||
From 5c77799d5dfcd9c4736621ad9b5fd5da611e6518 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Derek Mauro <dmauro@google.com>
|
|
||||||
Date: Fri, 20 Jan 2023 15:12:54 -0800
|
|
||||||
Subject: [PATCH] Update absl::allocator_traits and absl::pointer_traits to
|
|
||||||
always use std::allocator_traits and std::pointer traits.
|
|
||||||
|
|
||||||
Note that the reason given in the comments for these implementations was
|
|
||||||
incorrect. Both of these exist in C++11, but not all compilers had
|
|
||||||
working implementations, so Abseil backfiled them. All supported compilers
|
|
||||||
now have working implementations.
|
|
||||||
|
|
||||||
https://en.cppreference.com/w/cpp/memory/allocator_traits
|
|
||||||
https://en.cppreference.com/w/cpp/memory/pointer_traits
|
|
||||||
|
|
||||||
Documentation has been updated to recommend the std:: spellings.
|
|
||||||
|
|
||||||
Fixes #1366
|
|
||||||
|
|
||||||
PiperOrigin-RevId: 503532746
|
|
||||||
Change-Id: Ia437f65a4c752581195dc582a41831b479d096c6
|
|
||||||
---
|
|
||||||
absl/memory/memory.h | 371 ++-----------------------------------
|
|
||||||
absl/memory/memory_test.cc | 332 ---------------------------------
|
|
||||||
2 files changed, 20 insertions(+), 683 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/absl/memory/memory.h b/absl/memory/memory.h
|
|
||||||
index d6332606..2b99c190 100644
|
|
||||||
--- a/absl/memory/memory.h
|
|
||||||
+++ b/absl/memory/memory.h
|
|
||||||
@@ -248,6 +248,26 @@ std::weak_ptr<T> WeakenPtr(const std::shared_ptr<T>& ptr) {
|
|
||||||
return std::weak_ptr<T>(ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
+// -----------------------------------------------------------------------------
|
|
||||||
+// Class Template: pointer_traits
|
|
||||||
+// -----------------------------------------------------------------------------
|
|
||||||
+//
|
|
||||||
+// Historical note: Abseil once provided an implementation of
|
|
||||||
+// `std::pointer_traits` for platforms that had not yet provided it. Those
|
|
||||||
+// platforms are no longer supported. New code should simply use
|
|
||||||
+// `std::pointer_traits`.
|
|
||||||
+using std::pointer_traits;
|
|
||||||
+
|
|
||||||
+// -----------------------------------------------------------------------------
|
|
||||||
+// Class Template: allocator_traits
|
|
||||||
+// -----------------------------------------------------------------------------
|
|
||||||
+//
|
|
||||||
+// Historical note: Abseil once provided an implementation of
|
|
||||||
+// `std::allocator_traits` for platforms that had not yet provided it. Those
|
|
||||||
+// platforms are no longer supported. New code should simply use
|
|
||||||
+// `std::allocator_traits`.
|
|
||||||
+using std::allocator_traits;
|
|
||||||
+
|
|
||||||
namespace memory_internal {
|
|
||||||
|
|
||||||
// ExtractOr<E, O, D>::type evaluates to E<O> if possible. Otherwise, D.
|
|
||||||
@@ -265,357 +285,6 @@ struct ExtractOr<Extract, Obj, Default, void_t<Extract<Obj>>> {
|
|
||||||
template <template <typename> class Extract, typename Obj, typename Default>
|
|
||||||
using ExtractOrT = typename ExtractOr<Extract, Obj, Default, void>::type;
|
|
||||||
|
|
||||||
-// Extractors for the features of allocators.
|
|
||||||
-template <typename T>
|
|
||||||
-using GetPointer = typename T::pointer;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetConstPointer = typename T::const_pointer;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetVoidPointer = typename T::void_pointer;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetConstVoidPointer = typename T::const_void_pointer;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetDifferenceType = typename T::difference_type;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetSizeType = typename T::size_type;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetPropagateOnContainerCopyAssignment =
|
|
||||||
- typename T::propagate_on_container_copy_assignment;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetPropagateOnContainerMoveAssignment =
|
|
||||||
- typename T::propagate_on_container_move_assignment;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetPropagateOnContainerSwap = typename T::propagate_on_container_swap;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-using GetIsAlwaysEqual = typename T::is_always_equal;
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-struct GetFirstArg;
|
|
||||||
-
|
|
||||||
-template <template <typename...> class Class, typename T, typename... Args>
|
|
||||||
-struct GetFirstArg<Class<T, Args...>> {
|
|
||||||
- using type = T;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename Ptr, typename = void>
|
|
||||||
-struct ElementType {
|
|
||||||
- using type = typename GetFirstArg<Ptr>::type;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-struct ElementType<T, void_t<typename T::element_type>> {
|
|
||||||
- using type = typename T::element_type;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-struct RebindFirstArg;
|
|
||||||
-
|
|
||||||
-template <template <typename...> class Class, typename T, typename... Args,
|
|
||||||
- typename U>
|
|
||||||
-struct RebindFirstArg<Class<T, Args...>, U> {
|
|
||||||
- using type = Class<U, Args...>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U, typename = void>
|
|
||||||
-struct RebindPtr {
|
|
||||||
- using type = typename RebindFirstArg<T, U>::type;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-struct RebindPtr<T, U, void_t<typename T::template rebind<U>>> {
|
|
||||||
- using type = typename T::template rebind<U>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-constexpr bool HasRebindAlloc(...) {
|
|
||||||
- return false;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-constexpr bool HasRebindAlloc(typename T::template rebind<U>::other*) {
|
|
||||||
- return true;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template <typename T, typename U, bool = HasRebindAlloc<T, U>(nullptr)>
|
|
||||||
-struct RebindAlloc {
|
|
||||||
- using type = typename RebindFirstArg<T, U>::type;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-struct RebindAlloc<T, U, true> {
|
|
||||||
- using type = typename T::template rebind<U>::other;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-} // namespace memory_internal
|
|
||||||
-
|
|
||||||
-// -----------------------------------------------------------------------------
|
|
||||||
-// Class Template: pointer_traits
|
|
||||||
-// -----------------------------------------------------------------------------
|
|
||||||
-//
|
|
||||||
-// An implementation of C++11's std::pointer_traits.
|
|
||||||
-//
|
|
||||||
-// Provided for portability on toolchains that have a working C++11 compiler,
|
|
||||||
-// but the standard library is lacking in C++11 support. For example, some
|
|
||||||
-// version of the Android NDK.
|
|
||||||
-//
|
|
||||||
-
|
|
||||||
-template <typename Ptr>
|
|
||||||
-struct pointer_traits {
|
|
||||||
- using pointer = Ptr;
|
|
||||||
-
|
|
||||||
- // element_type:
|
|
||||||
- // Ptr::element_type if present. Otherwise T if Ptr is a template
|
|
||||||
- // instantiation Template<T, Args...>
|
|
||||||
- using element_type = typename memory_internal::ElementType<Ptr>::type;
|
|
||||||
-
|
|
||||||
- // difference_type:
|
|
||||||
- // Ptr::difference_type if present, otherwise std::ptrdiff_t
|
|
||||||
- using difference_type =
|
|
||||||
- memory_internal::ExtractOrT<memory_internal::GetDifferenceType, Ptr,
|
|
||||||
- std::ptrdiff_t>;
|
|
||||||
-
|
|
||||||
- // rebind:
|
|
||||||
- // Ptr::rebind<U> if exists, otherwise Template<U, Args...> if Ptr is a
|
|
||||||
- // template instantiation Template<T, Args...>
|
|
||||||
- template <typename U>
|
|
||||||
- using rebind = typename memory_internal::RebindPtr<Ptr, U>::type;
|
|
||||||
-
|
|
||||||
- // pointer_to:
|
|
||||||
- // Calls Ptr::pointer_to(r)
|
|
||||||
- static pointer pointer_to(element_type& r) { // NOLINT(runtime/references)
|
|
||||||
- return Ptr::pointer_to(r);
|
|
||||||
- }
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-// Specialization for T*.
|
|
||||||
-template <typename T>
|
|
||||||
-struct pointer_traits<T*> {
|
|
||||||
- using pointer = T*;
|
|
||||||
- using element_type = T;
|
|
||||||
- using difference_type = std::ptrdiff_t;
|
|
||||||
-
|
|
||||||
- template <typename U>
|
|
||||||
- using rebind = U*;
|
|
||||||
-
|
|
||||||
- // pointer_to:
|
|
||||||
- // Calls std::addressof(r)
|
|
||||||
- static pointer pointer_to(
|
|
||||||
- element_type& r) noexcept { // NOLINT(runtime/references)
|
|
||||||
- return std::addressof(r);
|
|
||||||
- }
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-// -----------------------------------------------------------------------------
|
|
||||||
-// Class Template: allocator_traits
|
|
||||||
-// -----------------------------------------------------------------------------
|
|
||||||
-//
|
|
||||||
-// A C++11 compatible implementation of C++17's std::allocator_traits.
|
|
||||||
-//
|
|
||||||
-#if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
|
|
||||||
-using std::allocator_traits;
|
|
||||||
-#else // __cplusplus >= 201703L
|
|
||||||
-template <typename Alloc>
|
|
||||||
-struct allocator_traits {
|
|
||||||
- using allocator_type = Alloc;
|
|
||||||
-
|
|
||||||
- // value_type:
|
|
||||||
- // Alloc::value_type
|
|
||||||
- using value_type = typename Alloc::value_type;
|
|
||||||
-
|
|
||||||
- // pointer:
|
|
||||||
- // Alloc::pointer if present, otherwise value_type*
|
|
||||||
- using pointer = memory_internal::ExtractOrT<memory_internal::GetPointer,
|
|
||||||
- Alloc, value_type*>;
|
|
||||||
-
|
|
||||||
- // const_pointer:
|
|
||||||
- // Alloc::const_pointer if present, otherwise
|
|
||||||
- // absl::pointer_traits<pointer>::rebind<const value_type>
|
|
||||||
- using const_pointer =
|
|
||||||
- memory_internal::ExtractOrT<memory_internal::GetConstPointer, Alloc,
|
|
||||||
- typename absl::pointer_traits<pointer>::
|
|
||||||
- template rebind<const value_type>>;
|
|
||||||
-
|
|
||||||
- // void_pointer:
|
|
||||||
- // Alloc::void_pointer if present, otherwise
|
|
||||||
- // absl::pointer_traits<pointer>::rebind<void>
|
|
||||||
- using void_pointer = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetVoidPointer, Alloc,
|
|
||||||
- typename absl::pointer_traits<pointer>::template rebind<void>>;
|
|
||||||
-
|
|
||||||
- // const_void_pointer:
|
|
||||||
- // Alloc::const_void_pointer if present, otherwise
|
|
||||||
- // absl::pointer_traits<pointer>::rebind<const void>
|
|
||||||
- using const_void_pointer = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetConstVoidPointer, Alloc,
|
|
||||||
- typename absl::pointer_traits<pointer>::template rebind<const void>>;
|
|
||||||
-
|
|
||||||
- // difference_type:
|
|
||||||
- // Alloc::difference_type if present, otherwise
|
|
||||||
- // absl::pointer_traits<pointer>::difference_type
|
|
||||||
- using difference_type = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetDifferenceType, Alloc,
|
|
||||||
- typename absl::pointer_traits<pointer>::difference_type>;
|
|
||||||
-
|
|
||||||
- // size_type:
|
|
||||||
- // Alloc::size_type if present, otherwise
|
|
||||||
- // std::make_unsigned<difference_type>::type
|
|
||||||
- using size_type = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetSizeType, Alloc,
|
|
||||||
- typename std::make_unsigned<difference_type>::type>;
|
|
||||||
-
|
|
||||||
- // propagate_on_container_copy_assignment:
|
|
||||||
- // Alloc::propagate_on_container_copy_assignment if present, otherwise
|
|
||||||
- // std::false_type
|
|
||||||
- using propagate_on_container_copy_assignment = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetPropagateOnContainerCopyAssignment, Alloc,
|
|
||||||
- std::false_type>;
|
|
||||||
-
|
|
||||||
- // propagate_on_container_move_assignment:
|
|
||||||
- // Alloc::propagate_on_container_move_assignment if present, otherwise
|
|
||||||
- // std::false_type
|
|
||||||
- using propagate_on_container_move_assignment = memory_internal::ExtractOrT<
|
|
||||||
- memory_internal::GetPropagateOnContainerMoveAssignment, Alloc,
|
|
||||||
- std::false_type>;
|
|
||||||
-
|
|
||||||
- // propagate_on_container_swap:
|
|
||||||
- // Alloc::propagate_on_container_swap if present, otherwise std::false_type
|
|
||||||
- using propagate_on_container_swap =
|
|
||||||
- memory_internal::ExtractOrT<memory_internal::GetPropagateOnContainerSwap,
|
|
||||||
- Alloc, std::false_type>;
|
|
||||||
-
|
|
||||||
- // is_always_equal:
|
|
||||||
- // Alloc::is_always_equal if present, otherwise std::is_empty<Alloc>::type
|
|
||||||
- using is_always_equal =
|
|
||||||
- memory_internal::ExtractOrT<memory_internal::GetIsAlwaysEqual, Alloc,
|
|
||||||
- typename std::is_empty<Alloc>::type>;
|
|
||||||
-
|
|
||||||
- // rebind_alloc:
|
|
||||||
- // Alloc::rebind<T>::other if present, otherwise Alloc<T, Args> if this Alloc
|
|
||||||
- // is Alloc<U, Args>
|
|
||||||
- template <typename T>
|
|
||||||
- using rebind_alloc = typename memory_internal::RebindAlloc<Alloc, T>::type;
|
|
||||||
-
|
|
||||||
- // rebind_traits:
|
|
||||||
- // absl::allocator_traits<rebind_alloc<T>>
|
|
||||||
- template <typename T>
|
|
||||||
- using rebind_traits = absl::allocator_traits<rebind_alloc<T>>;
|
|
||||||
-
|
|
||||||
- // allocate(Alloc& a, size_type n):
|
|
||||||
- // Calls a.allocate(n)
|
|
||||||
- static pointer allocate(Alloc& a, // NOLINT(runtime/references)
|
|
||||||
- size_type n) {
|
|
||||||
- return a.allocate(n);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // allocate(Alloc& a, size_type n, const_void_pointer hint):
|
|
||||||
- // Calls a.allocate(n, hint) if possible.
|
|
||||||
- // If not possible, calls a.allocate(n)
|
|
||||||
- static pointer allocate(Alloc& a, size_type n, // NOLINT(runtime/references)
|
|
||||||
- const_void_pointer hint) {
|
|
||||||
- return allocate_impl(0, a, n, hint);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // deallocate(Alloc& a, pointer p, size_type n):
|
|
||||||
- // Calls a.deallocate(p, n)
|
|
||||||
- static void deallocate(Alloc& a, pointer p, // NOLINT(runtime/references)
|
|
||||||
- size_type n) {
|
|
||||||
- a.deallocate(p, n);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // construct(Alloc& a, T* p, Args&&... args):
|
|
||||||
- // Calls a.construct(p, std::forward<Args>(args)...) if possible.
|
|
||||||
- // If not possible, calls
|
|
||||||
- // ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...)
|
|
||||||
- template <typename T, typename... Args>
|
|
||||||
- static void construct(Alloc& a, T* p, // NOLINT(runtime/references)
|
|
||||||
- Args&&... args) {
|
|
||||||
- construct_impl(0, a, p, std::forward<Args>(args)...);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // destroy(Alloc& a, T* p):
|
|
||||||
- // Calls a.destroy(p) if possible. If not possible, calls p->~T().
|
|
||||||
- template <typename T>
|
|
||||||
- static void destroy(Alloc& a, T* p) { // NOLINT(runtime/references)
|
|
||||||
- destroy_impl(0, a, p);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // max_size(const Alloc& a):
|
|
||||||
- // Returns a.max_size() if possible. If not possible, returns
|
|
||||||
- // std::numeric_limits<size_type>::max() / sizeof(value_type)
|
|
||||||
- static size_type max_size(const Alloc& a) { return max_size_impl(0, a); }
|
|
||||||
-
|
|
||||||
- // select_on_container_copy_construction(const Alloc& a):
|
|
||||||
- // Returns a.select_on_container_copy_construction() if possible.
|
|
||||||
- // If not possible, returns a.
|
|
||||||
- static Alloc select_on_container_copy_construction(const Alloc& a) {
|
|
||||||
- return select_on_container_copy_construction_impl(0, a);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- private:
|
|
||||||
- template <typename A>
|
|
||||||
- static auto allocate_impl(int, A& a, // NOLINT(runtime/references)
|
|
||||||
- size_type n, const_void_pointer hint)
|
|
||||||
- -> decltype(a.allocate(n, hint)) {
|
|
||||||
- return a.allocate(n, hint);
|
|
||||||
- }
|
|
||||||
- static pointer allocate_impl(char, Alloc& a, // NOLINT(runtime/references)
|
|
||||||
- size_type n, const_void_pointer) {
|
|
||||||
- return a.allocate(n);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- template <typename A, typename... Args>
|
|
||||||
- static auto construct_impl(int, A& a, // NOLINT(runtime/references)
|
|
||||||
- Args&&... args)
|
|
||||||
- -> decltype(a.construct(std::forward<Args>(args)...)) {
|
|
||||||
- a.construct(std::forward<Args>(args)...);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- template <typename T, typename... Args>
|
|
||||||
- static void construct_impl(char, Alloc&, T* p, Args&&... args) {
|
|
||||||
- ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- template <typename A, typename T>
|
|
||||||
- static auto destroy_impl(int, A& a, // NOLINT(runtime/references)
|
|
||||||
- T* p) -> decltype(a.destroy(p)) {
|
|
||||||
- a.destroy(p);
|
|
||||||
- }
|
|
||||||
- template <typename T>
|
|
||||||
- static void destroy_impl(char, Alloc&, T* p) {
|
|
||||||
- p->~T();
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- template <typename A>
|
|
||||||
- static auto max_size_impl(int, const A& a) -> decltype(a.max_size()) {
|
|
||||||
- return a.max_size();
|
|
||||||
- }
|
|
||||||
- static size_type max_size_impl(char, const Alloc&) {
|
|
||||||
- return (std::numeric_limits<size_type>::max)() / sizeof(value_type);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- template <typename A>
|
|
||||||
- static auto select_on_container_copy_construction_impl(int, const A& a)
|
|
||||||
- -> decltype(a.select_on_container_copy_construction()) {
|
|
||||||
- return a.select_on_container_copy_construction();
|
|
||||||
- }
|
|
||||||
- static Alloc select_on_container_copy_construction_impl(char,
|
|
||||||
- const Alloc& a) {
|
|
||||||
- return a;
|
|
||||||
- }
|
|
||||||
-};
|
|
||||||
-#endif // __cplusplus >= 201703L
|
|
||||||
-
|
|
||||||
-namespace memory_internal {
|
|
||||||
-
|
|
||||||
// This template alias transforms Alloc::is_nothrow into a metafunction with
|
|
||||||
// Alloc as a parameter so it can be used with ExtractOrT<>.
|
|
||||||
template <typename Alloc>
|
|
||||||
diff --git a/absl/memory/memory_test.cc b/absl/memory/memory_test.cc
|
|
||||||
index 5d5719b3..b62c48f9 100644
|
|
||||||
--- a/absl/memory/memory_test.cc
|
|
||||||
+++ b/absl/memory/memory_test.cc
|
|
||||||
@@ -287,338 +287,6 @@ TEST(RawPtrTest, NotAPointer) {
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
-template <typename T>
|
|
||||||
-struct SmartPointer {
|
|
||||||
- using difference_type = char;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-struct PointerWith {
|
|
||||||
- using element_type = int32_t;
|
|
||||||
- using difference_type = int16_t;
|
|
||||||
- template <typename U>
|
|
||||||
- using rebind = SmartPointer<U>;
|
|
||||||
-
|
|
||||||
- static PointerWith pointer_to(
|
|
||||||
- element_type& r) { // NOLINT(runtime/references)
|
|
||||||
- return PointerWith{&r};
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- element_type* ptr;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename... Args>
|
|
||||||
-struct PointerWithout {};
|
|
||||||
-
|
|
||||||
-TEST(PointerTraits, Types) {
|
|
||||||
- using TraitsWith = absl::pointer_traits<PointerWith>;
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWith::pointer, PointerWith>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWith::element_type, int32_t>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWith::difference_type, int16_t>::value));
|
|
||||||
- EXPECT_TRUE((
|
|
||||||
- std::is_same<TraitsWith::rebind<int64_t>, SmartPointer<int64_t>>::value));
|
|
||||||
-
|
|
||||||
- using TraitsWithout = absl::pointer_traits<PointerWithout<double, int>>;
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWithout::pointer,
|
|
||||||
- PointerWithout<double, int>>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWithout::element_type, double>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<TraitsWithout ::difference_type, std::ptrdiff_t>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsWithout::rebind<int64_t>,
|
|
||||||
- PointerWithout<int64_t, int>>::value));
|
|
||||||
-
|
|
||||||
- using TraitsRawPtr = absl::pointer_traits<char*>;
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsRawPtr::pointer, char*>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsRawPtr::element_type, char>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<TraitsRawPtr::difference_type, std::ptrdiff_t>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<TraitsRawPtr::rebind<int64_t>, int64_t*>::value));
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-TEST(PointerTraits, Functions) {
|
|
||||||
- int i;
|
|
||||||
- EXPECT_EQ(&i, absl::pointer_traits<PointerWith>::pointer_to(i).ptr);
|
|
||||||
- EXPECT_EQ(&i, absl::pointer_traits<int*>::pointer_to(i));
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-TEST(AllocatorTraits, Typedefs) {
|
|
||||||
- struct A {
|
|
||||||
- struct value_type {};
|
|
||||||
- };
|
|
||||||
- EXPECT_TRUE((
|
|
||||||
- std::is_same<A,
|
|
||||||
- typename absl::allocator_traits<A>::allocator_type>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<A::value_type,
|
|
||||||
- typename absl::allocator_traits<A>::value_type>::value));
|
|
||||||
-
|
|
||||||
- struct X {};
|
|
||||||
- struct HasPointer {
|
|
||||||
- using value_type = X;
|
|
||||||
- using pointer = SmartPointer<X>;
|
|
||||||
- };
|
|
||||||
- EXPECT_TRUE((std::is_same<SmartPointer<X>, typename absl::allocator_traits<
|
|
||||||
- HasPointer>::pointer>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<A::value_type*,
|
|
||||||
- typename absl::allocator_traits<A>::pointer>::value));
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<
|
|
||||||
- SmartPointer<const X>,
|
|
||||||
- typename absl::allocator_traits<HasPointer>::const_pointer>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<const A::value_type*,
|
|
||||||
- typename absl::allocator_traits<A>::const_pointer>::value));
|
|
||||||
-
|
|
||||||
- struct HasVoidPointer {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct void_pointer {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE((std::is_same<HasVoidPointer::void_pointer,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- HasVoidPointer>::void_pointer>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<SmartPointer<void>, typename absl::allocator_traits<
|
|
||||||
- HasPointer>::void_pointer>::value));
|
|
||||||
-
|
|
||||||
- struct HasConstVoidPointer {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct const_void_pointer {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<HasConstVoidPointer::const_void_pointer,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- HasConstVoidPointer>::const_void_pointer>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<SmartPointer<const void>,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- HasPointer>::const_void_pointer>::value));
|
|
||||||
-
|
|
||||||
- struct HasDifferenceType {
|
|
||||||
- using value_type = X;
|
|
||||||
- using difference_type = int;
|
|
||||||
- };
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<int, typename absl::allocator_traits<
|
|
||||||
- HasDifferenceType>::difference_type>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<char, typename absl::allocator_traits<
|
|
||||||
- HasPointer>::difference_type>::value));
|
|
||||||
-
|
|
||||||
- struct HasSizeType {
|
|
||||||
- using value_type = X;
|
|
||||||
- using size_type = unsigned int;
|
|
||||||
- };
|
|
||||||
- EXPECT_TRUE((std::is_same<unsigned int, typename absl::allocator_traits<
|
|
||||||
- HasSizeType>::size_type>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<unsigned char, typename absl::allocator_traits<
|
|
||||||
- HasPointer>::size_type>::value));
|
|
||||||
-
|
|
||||||
- struct HasPropagateOnCopy {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct propagate_on_container_copy_assignment {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<HasPropagateOnCopy::propagate_on_container_copy_assignment,
|
|
||||||
- typename absl::allocator_traits<HasPropagateOnCopy>::
|
|
||||||
- propagate_on_container_copy_assignment>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<std::false_type,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- A>::propagate_on_container_copy_assignment>::value));
|
|
||||||
-
|
|
||||||
- struct HasPropagateOnMove {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct propagate_on_container_move_assignment {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<HasPropagateOnMove::propagate_on_container_move_assignment,
|
|
||||||
- typename absl::allocator_traits<HasPropagateOnMove>::
|
|
||||||
- propagate_on_container_move_assignment>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<std::false_type,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- A>::propagate_on_container_move_assignment>::value));
|
|
||||||
-
|
|
||||||
- struct HasPropagateOnSwap {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct propagate_on_container_swap {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<HasPropagateOnSwap::propagate_on_container_swap,
|
|
||||||
- typename absl::allocator_traits<HasPropagateOnSwap>::
|
|
||||||
- propagate_on_container_swap>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<std::false_type, typename absl::allocator_traits<A>::
|
|
||||||
- propagate_on_container_swap>::value));
|
|
||||||
-
|
|
||||||
- struct HasIsAlwaysEqual {
|
|
||||||
- using value_type = X;
|
|
||||||
- struct is_always_equal {};
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE((std::is_same<HasIsAlwaysEqual::is_always_equal,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- HasIsAlwaysEqual>::is_always_equal>::value));
|
|
||||||
- EXPECT_TRUE((std::is_same<std::true_type, typename absl::allocator_traits<
|
|
||||||
- A>::is_always_equal>::value));
|
|
||||||
- struct NonEmpty {
|
|
||||||
- using value_type = X;
|
|
||||||
- int i;
|
|
||||||
- };
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<std::false_type,
|
|
||||||
- absl::allocator_traits<NonEmpty>::is_always_equal>::value));
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-struct AllocWithPrivateInheritance : private std::allocator<T> {
|
|
||||||
- using value_type = T;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-TEST(AllocatorTraits, RebindWithPrivateInheritance) {
|
|
||||||
- // Regression test for some versions of gcc that do not like the sfinae we
|
|
||||||
- // used in combination with private inheritance.
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<AllocWithPrivateInheritance<int>,
|
|
||||||
- absl::allocator_traits<AllocWithPrivateInheritance<char>>::
|
|
||||||
- rebind_alloc<int>>::value));
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-struct Rebound {};
|
|
||||||
-
|
|
||||||
-struct AllocWithRebind {
|
|
||||||
- using value_type = int;
|
|
||||||
- template <typename T>
|
|
||||||
- struct rebind {
|
|
||||||
- using other = Rebound<T>;
|
|
||||||
- };
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-template <typename T, typename U>
|
|
||||||
-struct AllocWithoutRebind {
|
|
||||||
- using value_type = int;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-TEST(AllocatorTraits, Rebind) {
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<Rebound<int>,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- AllocWithRebind>::template rebind_alloc<int>>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<absl::allocator_traits<Rebound<int>>,
|
|
||||||
- typename absl::allocator_traits<
|
|
||||||
- AllocWithRebind>::template rebind_traits<int>>::value));
|
|
||||||
-
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<AllocWithoutRebind<double, char>,
|
|
||||||
- typename absl::allocator_traits<AllocWithoutRebind<
|
|
||||||
- int, char>>::template rebind_alloc<double>>::value));
|
|
||||||
- EXPECT_TRUE(
|
|
||||||
- (std::is_same<absl::allocator_traits<AllocWithoutRebind<double, char>>,
|
|
||||||
- typename absl::allocator_traits<AllocWithoutRebind<
|
|
||||||
- int, char>>::template rebind_traits<double>>::value));
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-struct TestValue {
|
|
||||||
- TestValue() {}
|
|
||||||
- explicit TestValue(int* trace) : trace(trace) { ++*trace; }
|
|
||||||
- ~TestValue() {
|
|
||||||
- if (trace) --*trace;
|
|
||||||
- }
|
|
||||||
- int* trace = nullptr;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-struct MinimalMockAllocator {
|
|
||||||
- MinimalMockAllocator() : value(0) {}
|
|
||||||
- explicit MinimalMockAllocator(int value) : value(value) {}
|
|
||||||
- MinimalMockAllocator(const MinimalMockAllocator& other)
|
|
||||||
- : value(other.value) {}
|
|
||||||
- using value_type = TestValue;
|
|
||||||
- MOCK_METHOD(value_type*, allocate, (size_t));
|
|
||||||
- MOCK_METHOD(void, deallocate, (value_type*, size_t));
|
|
||||||
-
|
|
||||||
- int value;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-TEST(AllocatorTraits, FunctionsMinimal) {
|
|
||||||
- int trace = 0;
|
|
||||||
- int hint;
|
|
||||||
- alignas(TestValue) char buffer[sizeof(TestValue)];
|
|
||||||
- auto* x = reinterpret_cast<TestValue*>(buffer);
|
|
||||||
- MinimalMockAllocator mock;
|
|
||||||
- using Traits = absl::allocator_traits<MinimalMockAllocator>;
|
|
||||||
- EXPECT_CALL(mock, allocate(7)).WillRepeatedly(Return(x));
|
|
||||||
- EXPECT_CALL(mock, deallocate(x, 7));
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(x, Traits::allocate(mock, 7));
|
|
||||||
- static_cast<void>(Traits::allocate(mock, 7, static_cast<const void*>(&hint)));
|
|
||||||
- EXPECT_EQ(x, Traits::allocate(mock, 7, static_cast<const void*>(&hint)));
|
|
||||||
- Traits::deallocate(mock, x, 7);
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(0, trace);
|
|
||||||
- Traits::construct(mock, x, &trace);
|
|
||||||
- EXPECT_EQ(1, trace);
|
|
||||||
- Traits::destroy(mock, x);
|
|
||||||
- EXPECT_EQ(0, trace);
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(std::numeric_limits<size_t>::max() / sizeof(TestValue),
|
|
||||||
- Traits::max_size(mock));
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(0, mock.value);
|
|
||||||
- EXPECT_EQ(0, Traits::select_on_container_copy_construction(mock).value);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-struct FullMockAllocator {
|
|
||||||
- FullMockAllocator() : value(0) {}
|
|
||||||
- explicit FullMockAllocator(int value) : value(value) {}
|
|
||||||
- FullMockAllocator(const FullMockAllocator& other) : value(other.value) {}
|
|
||||||
- using value_type = TestValue;
|
|
||||||
- MOCK_METHOD(value_type*, allocate, (size_t));
|
|
||||||
- MOCK_METHOD(value_type*, allocate, (size_t, const void*));
|
|
||||||
- MOCK_METHOD(void, construct, (value_type*, int*));
|
|
||||||
- MOCK_METHOD(void, destroy, (value_type*));
|
|
||||||
- MOCK_METHOD(size_t, max_size, (),
|
|
||||||
- (const));
|
|
||||||
- MOCK_METHOD(FullMockAllocator, select_on_container_copy_construction, (),
|
|
||||||
- (const));
|
|
||||||
-
|
|
||||||
- int value;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-TEST(AllocatorTraits, FunctionsFull) {
|
|
||||||
- int trace = 0;
|
|
||||||
- int hint;
|
|
||||||
- TestValue x(&trace), y;
|
|
||||||
- FullMockAllocator mock;
|
|
||||||
- using Traits = absl::allocator_traits<FullMockAllocator>;
|
|
||||||
- EXPECT_CALL(mock, allocate(7)).WillRepeatedly(Return(&x));
|
|
||||||
- EXPECT_CALL(mock, allocate(13, &hint)).WillRepeatedly(Return(&y));
|
|
||||||
- EXPECT_CALL(mock, construct(&x, &trace));
|
|
||||||
- EXPECT_CALL(mock, destroy(&x));
|
|
||||||
- EXPECT_CALL(mock, max_size()).WillRepeatedly(Return(17));
|
|
||||||
- EXPECT_CALL(mock, select_on_container_copy_construction())
|
|
||||||
- .WillRepeatedly(Return(FullMockAllocator(23)));
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(&x, Traits::allocate(mock, 7));
|
|
||||||
- EXPECT_EQ(&y, Traits::allocate(mock, 13, static_cast<const void*>(&hint)));
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(1, trace);
|
|
||||||
- Traits::construct(mock, &x, &trace);
|
|
||||||
- EXPECT_EQ(1, trace);
|
|
||||||
- Traits::destroy(mock, &x);
|
|
||||||
- EXPECT_EQ(1, trace);
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(17, Traits::max_size(mock));
|
|
||||||
-
|
|
||||||
- EXPECT_EQ(0, mock.value);
|
|
||||||
- EXPECT_EQ(23, Traits::select_on_container_copy_construction(mock).value);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
TEST(AllocatorNoThrowTest, DefaultAllocator) {
|
|
||||||
#if defined(ABSL_ALLOCATOR_NOTHROW) && ABSL_ALLOCATOR_NOTHROW
|
|
||||||
EXPECT_TRUE(absl::default_allocator_is_nothrow::value);
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
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()
|
|
||||||
262
abseil-cpp.spec
262
abseil-cpp.spec
|
|
@ -1,9 +1,9 @@
|
||||||
# Installed library version
|
# Installed library version
|
||||||
%global lib_version 2206.0.0
|
%global lib_version 2508.0.0
|
||||||
|
|
||||||
Name: abseil-cpp
|
Name: abseil-cpp
|
||||||
Version: 20220623.1
|
Version: 20250814.1
|
||||||
Release: 4%{?dist}
|
Release: %autorelease
|
||||||
Summary: C++ Common Libraries
|
Summary: C++ Common Libraries
|
||||||
|
|
||||||
# The entire source is Apache-2.0, except:
|
# The entire source is Apache-2.0, except:
|
||||||
|
|
@ -16,25 +16,19 @@ Summary: C++ Common Libraries
|
||||||
# # 2009-05-17 by Arthur David Olson.
|
# # 2009-05-17 by Arthur David Olson.
|
||||||
# absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab
|
# absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab
|
||||||
# # This file is in the public domain.
|
# # 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
|
License: Apache-2.0 AND LicenseRef-Fedora-Public-Domain
|
||||||
URL: https://abseil.io
|
URL: https://abseil.io
|
||||||
Source0: https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
|
Source: https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
# Backport upstream commit 09e96049995584c3489e4bd1467313e3e85af99c, which
|
# Omit the “bind” block in test Test Mutex::FunctorCondition
|
||||||
# corresponds to:
|
|
||||||
#
|
#
|
||||||
# Do not leak -maes -msse4.1 into pkgconfig
|
# Work around failure to compile with GCC 16,
|
||||||
# https://github.com/abseil/abseil-cpp/pull/1216
|
# https://github.com/abseil/abseil-cpp/issues/1992.
|
||||||
#
|
Patch: 0001-Omit-the-bind-block-in-test-Test-Mutex-FunctorCondit.patch
|
||||||
# Fixes RHBZ#2108658.
|
|
||||||
Patch: https://github.com/abseil/abseil-cpp/commit/09e96049995584c3489e4bd1467313e3e85af99c.patch
|
|
||||||
|
|
||||||
# Backport upstream commit 4eef16170014f75f4291ae335a271900f89eaedf by
|
|
||||||
# cherry-picking and rebasing onto 20220623.1; fixes:
|
|
||||||
#
|
|
||||||
# Static assertion failures compiling AllocatorTraits.Rebind test (GCC 13)
|
|
||||||
# https://github.com/abseil/abseil-cpp/issues/1366
|
|
||||||
Patch: 0001-Update-absl-allocator_traits-and-absl-pointer_traits.patch
|
|
||||||
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
# The default make backend would work just as well; ninja is observably faster
|
# The default make backend would work just as well; ninja is observably faster
|
||||||
|
|
@ -44,6 +38,18 @@ BuildRequires: gcc-c++
|
||||||
BuildRequires: gmock-devel
|
BuildRequires: gmock-devel
|
||||||
BuildRequires: gtest-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
|
%ifarch s390x
|
||||||
# Symbolize.SymbolizeWithMultipleMaps fails in absl_symbolize_test on s390x
|
# Symbolize.SymbolizeWithMultipleMaps fails in absl_symbolize_test on s390x
|
||||||
# with LTO
|
# with LTO
|
||||||
|
|
@ -66,9 +72,23 @@ 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,
|
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.
|
and we now want to provide those resources to the C++ community as a whole.
|
||||||
|
|
||||||
|
%package testing
|
||||||
|
Summary: Libraries needed for running tests on the installed %{name}
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
Provides: bundled(cctz)
|
||||||
|
|
||||||
|
%description testing
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for %{name}
|
Summary: Development files for %{name}
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-testing%{?_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
|
%description devel
|
||||||
Development headers for %{name}
|
Development headers for %{name}
|
||||||
|
|
@ -77,12 +97,16 @@ Development headers for %{name}
|
||||||
%autosetup -p1 -S gendiff
|
%autosetup -p1 -S gendiff
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# ABSL_BUILD_TEST_HELPERS is needed to build libraries for the -testing
|
||||||
|
# subpackage when tests are not enabled. It is therefore redundant here, but we
|
||||||
|
# still supply it to be more explicit.
|
||||||
%cmake \
|
%cmake \
|
||||||
-GNinja \
|
-GNinja \
|
||||||
-DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON \
|
-DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON \
|
||||||
-DABSL_FIND_GOOGLETEST:BOOL=ON \
|
-DABSL_FIND_GOOGLETEST:BOOL=ON \
|
||||||
-DABSL_ENABLE_INSTALL:BOOL=ON \
|
-DABSL_ENABLE_INSTALL:BOOL=ON \
|
||||||
-DABSL_BUILD_TESTING:BOOL=ON \
|
-DABSL_BUILD_TESTING:BOOL=ON \
|
||||||
|
-DABSL_BUILD_TEST_HELPERS:BOOL=ON \
|
||||||
-DCMAKE_BUILD_TYPE:STRING=None \
|
-DCMAKE_BUILD_TYPE:STRING=None \
|
||||||
-DCMAKE_CXX_STANDARD:STRING=17
|
-DCMAKE_CXX_STANDARD:STRING=17
|
||||||
%cmake_build
|
%cmake_build
|
||||||
|
|
@ -92,83 +116,147 @@ Development headers for %{name}
|
||||||
%cmake_install
|
%cmake_install
|
||||||
|
|
||||||
%check
|
%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"
|
||||||
|
# [Bug]: StackTrace.NestedSignal in absl_stacktrace_test fails on ppc64le since
|
||||||
|
# 20250184.0
|
||||||
|
# https://github.com/abseil/abseil-cpp/issues/1925
|
||||||
|
skips="${skips}|absl_stacktrace_test"
|
||||||
|
%endif
|
||||||
|
skips="${skips})$"
|
||||||
|
|
||||||
|
%ctest --exclude-regex "${skips}"
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%doc FAQ.md README.md UPGRADES.md
|
%doc FAQ.md README.md UPGRADES.md
|
||||||
%{_libdir}/libabsl_*.so.%{lib_version}
|
# All shared libraries except installed TESTONLY libraries; see the %%files
|
||||||
|
# list for the -testing subpackage for those.
|
||||||
|
%{_libdir}/libabsl_base.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_city.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_civil_time.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cord.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cord_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cordz_functions.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cordz_handle.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cordz_info.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_cordz_sample_token.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_crc32c.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_crc_cord_state.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_crc_cpu_detect.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_crc_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_debugging_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_decode_rust_punycode.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_demangle_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_demangle_rust.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_die_if_null.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_examine_stack.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_exponential_biased.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_failure_signal_handler.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_commandlineflag.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_commandlineflag_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_config.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_marshalling.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_parse.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_private_handle_accessor.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_program_name.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_reflection.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_usage.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_flags_usage_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_graphcycles_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_hash.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_hashtablez_sampler.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_hashtable_profiler.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_int128.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_kernel_timeout_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_leak_check.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_entry.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_flags.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_globals.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_initialize.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_check_op.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_conditions.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_fnmatch.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_format.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_globals.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_log_sink_set.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_message.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_nullguard.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_proto.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_structured_proto.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_severity.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_sink.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_malloc_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_periodic_sampler.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_poison.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_profile_builder.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_distributions.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_distribution_test_util.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_entropy_pool.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_platform.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_randen.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_randen_hwaes.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_randen_hwaes_impl.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_randen_slow.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_internal_seed_material.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_seed_gen_exception.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_random_seed_sequences.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_raw_hash_set.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_raw_logging_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_scoped_set_env.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_spinlock_wait.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_stacktrace.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_status.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_statusor.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_str_format_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_strerror.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_strings.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_strings_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_string_view.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_symbolize.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_synchronization.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_throw_delegate.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_time.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_time_zone.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_tracing_internal.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_utf8_for_code_point.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_vlog_config_internal.so.%{lib_version}
|
||||||
|
|
||||||
|
%files testing
|
||||||
|
# TESTONLY libraries (that are actually installed):
|
||||||
|
# absl/base/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_exception_safety_testing.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_atomic_hook_test_helper.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_spinlock_test_common.so.%{lib_version}
|
||||||
|
# absl/container/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_test_instance_tracker.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_hash_generator_testing.so.%{lib_version}
|
||||||
|
# absl/debugging/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_stack_consumption.so.%{lib_version}
|
||||||
|
# absl/log/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_log_internal_test_actions.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_test_helpers.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_log_internal_test_matchers.so.%{lib_version}
|
||||||
|
%{_libdir}/libabsl_scoped_mock_log.so.%{lib_version}
|
||||||
|
# absl/status/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_status_matchers.so.%{lib_version}
|
||||||
|
# absl/strings/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_pow10_helper.so.%{lib_version}
|
||||||
|
# absl/synchronization/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_per_thread_sem_test_common.so.%{lib_version}
|
||||||
|
# absl/time/CMakeLists.txt
|
||||||
|
%{_libdir}/libabsl_time_internal_test_util.so.%{lib_version}
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_includedir}/absl
|
%{_includedir}/absl
|
||||||
%{_libdir}/libabsl_*.so
|
%{_libdir}/libabsl_*.so
|
||||||
%{_libdir}/cmake/absl
|
%{_libdir}/cmake/absl
|
||||||
%{_libdir}/pkgconfig/*.pc
|
%{_libdir}/pkgconfig/absl_*.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sat Jan 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-4
|
%autochangelog
|
||||||
- Backport upstream commit 4eef161 for GCC 13
|
|
||||||
|
|
||||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20220623.1-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Sep 02 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-2
|
|
||||||
- Update to 20220623.1 (close RHBZ#2123181)
|
|
||||||
|
|
||||||
* Sat Aug 13 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.0-1
|
|
||||||
- Update to 20220623.0 (close RHBZ#2101021)
|
|
||||||
- Update License to SPDX
|
|
||||||
|
|
||||||
* Fri Jul 29 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-4
|
|
||||||
- Do not leak -maes -msse4.1 into pkgconfig (fix RHBZ#2108658)
|
|
||||||
|
|
||||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20211102.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
|
||||||
141
changelog
Normal file
141
changelog
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20250512.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 15 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20250512.0-1
|
||||||
|
- Update to 20250512.0 (close RHBZ#2366373)
|
||||||
|
|
||||||
|
* Wed Mar 19 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20250127.1-1
|
||||||
|
- Update to 20250127.1 (close RHBZ#2353223)
|
||||||
|
|
||||||
|
* Tue Feb 04 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20250127.0-1
|
||||||
|
- Update to 20250127.0 (close RHBZ#2343779)
|
||||||
|
|
||||||
|
* Fri Jan 24 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20240722.1-1
|
||||||
|
- Update to 20240722.1 (close RHBZ#2341808)
|
||||||
|
|
||||||
|
* Wed Jan 22 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20240722.0-5
|
||||||
|
- Rebuilt for gtest 1.15.2
|
||||||
|
|
||||||
|
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20240722.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20240722.0-3
|
||||||
|
- Patch for GCC 15 (fix RHBZ#2336266)
|
||||||
|
|
||||||
|
* Wed Jan 08 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 20240722.0-2
|
||||||
|
- Report and skip a test regression on ppc64le
|
||||||
|
|
||||||
|
* Sat Aug 03 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240722.0-1
|
||||||
|
- Update to 20240722.0 (close RHBZ#2302537)
|
||||||
|
|
||||||
|
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20240116.2-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 03 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240116.2-3
|
||||||
|
- Rebuilt with upstream patch for NegativeNaN test failure on riscv64
|
||||||
|
|
||||||
|
* Wed May 29 2024 David Abdurachmanov <davidlt@rivosinc.com> - 20240116.2-2
|
||||||
|
- Disable NegativeNaN test on riscv64
|
||||||
|
|
||||||
|
* Tue Apr 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240116.2-1
|
||||||
|
- Update to 20240116.2 (close RHBZ#2274172)
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240116.0-1
|
||||||
|
- Update to 20240116.0
|
||||||
|
|
||||||
|
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230802.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230802.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 31 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.1-2
|
||||||
|
- Rebuild for gtest 1.14.0
|
||||||
|
|
||||||
|
* Wed Sep 20 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.1-1
|
||||||
|
- Update to 20230802.1 (close RHBZ#2239814)
|
||||||
|
|
||||||
|
* Thu Aug 10 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.0-1
|
||||||
|
- Update to 20230802.0 (Abseil LTS branch, Aug 2023): close RHBZ#2229015
|
||||||
|
|
||||||
|
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20230125.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 09 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.3-1
|
||||||
|
- Update to 20230125.3 (close RHBZ#2193306)
|
||||||
|
- Split installed TESTONLY libraries into a -testing subpackage; explicitly
|
||||||
|
list all installed shared libraries
|
||||||
|
- Explicitly enable the ABSL_BUILD_TEST_HELPERS CMake option
|
||||||
|
|
||||||
|
* Thu Mar 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.2-1
|
||||||
|
- Update to 20230125.2 (close RHBZ#2182229)
|
||||||
|
|
||||||
|
* Thu Feb 23 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.1-1
|
||||||
|
- Update to 20230125.1 (close RHBZ#2162638)
|
||||||
|
|
||||||
|
* Sat Jan 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-4
|
||||||
|
- Backport upstream commit 4eef161 for GCC 13
|
||||||
|
|
||||||
|
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20220623.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Sep 02 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-2
|
||||||
|
- Update to 20220623.1 (close RHBZ#2123181)
|
||||||
|
|
||||||
|
* Sat Aug 13 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.0-1
|
||||||
|
- Update to 20220623.0 (close RHBZ#2101021)
|
||||||
|
- Update License to SPDX
|
||||||
|
|
||||||
|
* Fri Jul 29 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-4
|
||||||
|
- Do not leak -maes -msse4.1 into pkgconfig (fix RHBZ#2108658)
|
||||||
|
|
||||||
|
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20211102.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* 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.
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (abseil-cpp-20220623.1.tar.gz) = ab4fccd9a2bfa0c5ad4b56c8e8f8b7ec7a8eca8b6cc6959802acadd1da785e1feb078c6ac621808cd699c82717a9e637dc426d94b70a8db7f2a807059d41cbc2
|
SHA512 (abseil-cpp-20250814.1.tar.gz) = 7083b73c3cf763f6f7a7edb70a5171f44d27045a0f5e52ca043e0a86379af2c50cf85dbfea30ebaa22a7bb2929452581d26b1ba18945023b057267d4c3bad2f7
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue