diff --git a/libxcrypt-4.4.10-Remove_Winline_from_the_list_of_warnings_to_use.patch b/libxcrypt-4.4.10-Remove_Winline_from_the_list_of_warnings_to_use.patch new file mode 100644 index 0000000..7344a7a --- /dev/null +++ b/libxcrypt-4.4.10-Remove_Winline_from_the_list_of_warnings_to_use.patch @@ -0,0 +1,29 @@ +From 45ff87405a6f2ee64ec282e6efc6cca229eae893 Mon Sep 17 00:00:00 2001 +From: Zack Weinberg +Date: Wed, 11 Dec 2019 13:27:54 -0500 +Subject: [PATCH] Remove -Winline from the list of warnings to use (#95) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GCC 10 may decline to inline some functions in `alg-yescrypt-opt.c` +and, with `-Winline -Werror`, this breaks the build. This warning +isn’t ever going to expose actual bugs, so let’s just turn it off. + +Fixes #95. +--- + m4/zw_simple_warnings.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/m4/zw_simple_warnings.m4 b/m4/zw_simple_warnings.m4 +index cfdf9e9..e45453e 100644 +--- a/m4/zw_simple_warnings.m4 ++++ b/m4/zw_simple_warnings.m4 +@@ -72,7 +72,6 @@ AC_ARG_ENABLE( + -Wformat-overflow=2 dnl + -Wformat-signedness dnl + -Wformat-truncation=1 dnl +- -Winline dnl + -Wlogical-op dnl + -Wmissing-declarations dnl + -Wmissing-prototypes dnl diff --git a/libxcrypt-4.4.10-crypt-common_h_Declare_ascii64_with_explicit_extern.patch b/libxcrypt-4.4.10-crypt-common_h_Declare_ascii64_with_explicit_extern.patch new file mode 100644 index 0000000..e110ba2 --- /dev/null +++ b/libxcrypt-4.4.10-crypt-common_h_Declare_ascii64_with_explicit_extern.patch @@ -0,0 +1,29 @@ +From 941362e2868a71a32a2a497903e651fb647b4fd2 Mon Sep 17 00:00:00 2001 +From: Zack Weinberg +Date: Wed, 11 Dec 2019 13:33:07 -0500 +Subject: [PATCH] crypt-common.h: Declare `ascii64` with explicit `extern`. + +GCC 10 changes its default compilation mode from `-fcommon` to +`-fno-common`, which means that tentative definitions of data objects +will no longer be merged across translation units; instead they will +produce multiple definition errors. The `ascii64` constant was +supposed to be _declared_ in crypt-common.h, but it was accidentally a +tentative definition instead. Fix this by adding the `extern` +annotation that should have always been there. +--- + lib/crypt-common.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/crypt-common.h b/lib/crypt-common.h +index c97fa5d..1134bc4 100644 +--- a/lib/crypt-common.h ++++ b/lib/crypt-common.h +@@ -24,7 +24,7 @@ + /* The base-64 encoding table used by most hashing methods. + (bcrypt uses a slightly different encoding.) Size 65 + because it's used as a C string in a few places. */ +-const unsigned char ascii64[65]; ++extern const unsigned char ascii64[65]; + + /* Same table gets used with other names in various places. */ + #define b64t ((const char *) ascii64) diff --git a/libxcrypt.spec b/libxcrypt.spec index bec1724..ac0a3f9 100644 --- a/libxcrypt.spec +++ b/libxcrypt.spec @@ -142,7 +142,7 @@ fi \ Name: libxcrypt Version: 4.4.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Extended crypt library for descrypt, md5crypt, bcrypt, and others # For explicit license breakdown, see the @@ -152,6 +152,8 @@ URL: https://github.com/besser82/%{name} Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz # Patch 0000 - 2999: Backported patches from upstream. +Patch0000: %{url}/commit/45ff87405a6f2ee64ec282e6efc6cca229eae893.patch#/%{name}-%{version}-Remove_Winline_from_the_list_of_warnings_to_use.patch +Patch0001: %{url}/commit/941362e2868a71a32a2a497903e651fb647b4fd2.patch#/%{name}-%{version}-crypt-common_h_Declare_ascii64_with_explicit_extern.patch # Patch 3000 - 5999: Backported patches from pull requests. @@ -459,6 +461,9 @@ done %changelog +* Sun Dec 15 2019 Björn Esser - 4.4.10-2 +- Add two upstream patches to fix build with upcoming GCC-10 + * Wed Sep 18 2019 Björn Esser - 4.4.10-1 - New upstream release