Accepting request 985793 from devel:microos

- Remove obsolete 0%{suse_version} < 1500 conditions

- Add options-old.patch, options-cxx17.patch
  * Ensure ABI stability regardless of compiler settings per instruction in the header.

OBS-URL: https://build.opensuse.org/request/show/985793
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/abseil-cpp?expand=0&rev=23
This commit is contained in:
Dominique Leuenberger 2022-06-30 11:18:08 +00:00 committed by Git OBS Bridge
parent 5eab08eec9
commit 5aa5a67ae9
4 changed files with 103 additions and 6 deletions

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed Jun 29 12:49:20 UTC 2022 - Fabian Vogt <fvogt@suse.com>
- Remove obsolete 0%{suse_version} < 1500 conditions
-------------------------------------------------------------------
Wed Jun 29 12:04:22 UTC 2022 - Bruno Pitrus <brunopitrus@hotmail.com>
- Add options-old.patch, options-cxx17.patch
* Ensure ABI stability regardless of compiler settings per instruction in the header.
-------------------------------------------------------------------
Mon Apr 4 11:37:33 UTC 2022 - Jan Engelhardt <jengelh@inai.de>

View File

@ -24,13 +24,16 @@ Summary: C++11 libraries which augment the C++ stdlib
License: Apache-2.0
URL: https://abseil.io/
Source0: https://github.com/abseil/abseil-cpp/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-OPENSUSE options-{old,cxx17}.patch Ensure ABI stability regardless of compiler options
%if %{suse_version} < 1550
Patch0: options-old.patch
%else
Patch0: options-cxx17.patch
%endif
BuildRequires: c++_compiler
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: pkgconfig
%if 0%{suse_version} < 1500
BuildRequires: gcc11-c++
%endif
%description
Abseil is a collection of C++11 libraries which augment the C++
@ -60,9 +63,6 @@ This package contains headers and build system files for it.
%autosetup -p1
%build
%if 0%{suse_version} < 1500
export CXX=g++-11
%endif
%cmake
%cmake_build

43
options-cxx17.patch Normal file
View File

@ -0,0 +1,43 @@
Make the headers always tell the truth about the ABI of the compiled dll's
to avoid mysterious linker errors when using wrong C++ version in compiler.
This version of patch is for new systems (Tumbleweed) where Abseil is built with C++17 support.
For more information, see “notice for package managers” in options.h
--- a/absl/base/options.h 2021-11-03 16:26:14.000000000 +0100
+++ b/absl/base/options.h 2022-06-28 22:49:52.830727200 +0200
@@ -100,7 +100,7 @@
// User code should not inspect this macro. To check in the preprocessor if
// absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
-#define ABSL_OPTION_USE_STD_ANY 2
+#define ABSL_OPTION_USE_STD_ANY 1
// ABSL_OPTION_USE_STD_OPTIONAL
@@ -127,7 +127,7 @@
// absl::optional is a typedef of std::optional, use the feature macro
// ABSL_USES_STD_OPTIONAL.
-#define ABSL_OPTION_USE_STD_OPTIONAL 2
+#define ABSL_OPTION_USE_STD_OPTIONAL 1
// ABSL_OPTION_USE_STD_STRING_VIEW
@@ -154,7 +154,7 @@
// absl::string_view is a typedef of std::string_view, use the feature macro
// ABSL_USES_STD_STRING_VIEW.
-#define ABSL_OPTION_USE_STD_STRING_VIEW 2
+#define ABSL_OPTION_USE_STD_STRING_VIEW 1
// ABSL_OPTION_USE_STD_VARIANT
//
@@ -180,7 +180,7 @@
// absl::variant is a typedef of std::variant, use the feature macro
// ABSL_USES_STD_VARIANT.
-#define ABSL_OPTION_USE_STD_VARIANT 2
+#define ABSL_OPTION_USE_STD_VARIANT 1
// ABSL_OPTION_USE_INLINE_NAMESPACE

43
options-old.patch Normal file
View File

@ -0,0 +1,43 @@
Make the headers always tell the truth about the ABI of the compiled dll's
to avoid mysterious linker errors when using wrong C++ version in compiler.
This version of the patch is for old systems where the system compiler does not use C++17.
For more information, see “notice for package managers” in options.h
--- a/absl/base/options.h 2021-11-03 16:26:14.000000000 +0100
+++ b/absl/base/options.h 2022-06-28 22:49:52.830727200 +0200
@@ -100,7 +100,7 @@
// User code should not inspect this macro. To check in the preprocessor if
// absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
-#define ABSL_OPTION_USE_STD_ANY 2
+#define ABSL_OPTION_USE_STD_ANY 0
// ABSL_OPTION_USE_STD_OPTIONAL
@@ -127,7 +127,7 @@
// absl::optional is a typedef of std::optional, use the feature macro
// ABSL_USES_STD_OPTIONAL.
-#define ABSL_OPTION_USE_STD_OPTIONAL 2
+#define ABSL_OPTION_USE_STD_OPTIONAL 0
// ABSL_OPTION_USE_STD_STRING_VIEW
@@ -154,7 +154,7 @@
// absl::string_view is a typedef of std::string_view, use the feature macro
// ABSL_USES_STD_STRING_VIEW.
-#define ABSL_OPTION_USE_STD_STRING_VIEW 2
+#define ABSL_OPTION_USE_STD_STRING_VIEW 0
// ABSL_OPTION_USE_STD_VARIANT
//
@@ -180,7 +180,7 @@
// absl::variant is a typedef of std::variant, use the feature macro
// ABSL_USES_STD_VARIANT.
-#define ABSL_OPTION_USE_STD_VARIANT 2
+#define ABSL_OPTION_USE_STD_VARIANT 0
// ABSL_OPTION_USE_INLINE_NAMESPACE