From 5aa5a67ae9679ac386dfb468fa7c83bae4b0c481fe0e99e291e520745b272ef7 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 30 Jun 2022 11:18:08 +0000 Subject: [PATCH] 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 --- abseil-cpp.changes | 11 +++++++++++ abseil-cpp.spec | 12 ++++++------ options-cxx17.patch | 43 +++++++++++++++++++++++++++++++++++++++++++ options-old.patch | 43 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 options-cxx17.patch create mode 100644 options-old.patch diff --git a/abseil-cpp.changes b/abseil-cpp.changes index 8a4eea2..82f4927 100644 --- a/abseil-cpp.changes +++ b/abseil-cpp.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 29 12:49:20 UTC 2022 - Fabian Vogt + +- Remove obsolete 0%{suse_version} < 1500 conditions + +------------------------------------------------------------------- +Wed Jun 29 12:04:22 UTC 2022 - Bruno Pitrus + +- 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 diff --git a/abseil-cpp.spec b/abseil-cpp.spec index bbf5c4f..76b38a2 100644 --- a/abseil-cpp.spec +++ b/abseil-cpp.spec @@ -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 diff --git a/options-cxx17.patch b/options-cxx17.patch new file mode 100644 index 0000000..7560c3d --- /dev/null +++ b/options-cxx17.patch @@ -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 diff --git a/options-old.patch b/options-old.patch new file mode 100644 index 0000000..d3e3bd1 --- /dev/null +++ b/options-old.patch @@ -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