From 45ff87405a6f2ee64ec282e6efc6cca229eae893 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 11 Dec 2019 13:27:54 -0500 Subject: [PATCH 1/2] 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 -- 2.24.1 From 941362e2868a71a32a2a497903e651fb647b4fd2 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 11 Dec 2019 13:33:07 -0500 Subject: [PATCH 2/2] 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) -- 2.24.1