|
|
https://bugs.gentoo.org/870412
|
|
|
https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=bf5a75953b6d504f0405b1ca33b039b8dd39eef4
|
|
|
|
|
|
Backport the K&R decls fix to 2.71 to avoid configure tests
|
|
|
failing (often "silently", i.e. doesn't fail the build of
|
|
|
the package overall, just leads to wrong results) with
|
|
|
newer compilers like the upcoming Clang 16.
|
|
|
|
|
|
From bf5a75953b6d504f0405b1ca33b039b8dd39eef4 Mon Sep 17 00:00:00 2001
|
|
|
From: Zack Weinberg <zackw@panix.com>
|
|
|
Date: Thu, 10 Nov 2022 12:05:30 -0500
|
|
|
Subject: More fixes for compilers that reject K&R function definitions.
|
|
|
MIME-Version: 1.0
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
This fixes all of the remaining failures exposed by running the
|
|
|
testsuite with GCC 12 and
|
|
|
CC='cc -Wimplicit-function-declaration -Wold-style-definition
|
|
|
-Wimplicit-int -Werror'
|
|
|
.
|
|
|
|
|
|
* lib/autoconf/c.m4 (_AC_C_C89_TEST_GLOBALS): Don’t use K&R function
|
|
|
definitions.
|
|
|
* lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
|
|
|
(AC_FUNC_MKTIME): Declare functions taking no arguments as ‘fn (void)’
|
|
|
not ‘fn ()’.
|
|
|
* lib/autoconf/c.m4 (_AC_C_C99_TEST_GLOBALS): Declare free().
|
|
|
--- a/lib/autoconf/c.m4
|
|
|
+++ b/lib/autoconf/c.m4
|
|
|
@@ -1153,9 +1153,7 @@ struct stat;
|
|
|
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
|
|
|
struct buf { int x; };
|
|
|
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
|
|
|
-static char *e (p, i)
|
|
|
- char **p;
|
|
|
- int i;
|
|
|
+static char *e (char **p, int i)
|
|
|
{
|
|
|
return p[i];
|
|
|
}
|
|
|
@@ -1212,6 +1210,7 @@ extern int puts (const char *);
|
|
|
extern int printf (const char *, ...);
|
|
|
extern int dprintf (int, const char *, ...);
|
|
|
extern void *malloc (size_t);
|
|
|
+extern void free (void *);
|
|
|
|
|
|
// Check varargs macros. These examples are taken from C99 6.10.3.5.
|
|
|
// dprintf is used instead of fprintf to avoid needing to declare
|
|
|
--- a/lib/autoconf/functions.m4
|
|
|
+++ b/lib/autoconf/functions.m4
|
|
|
@@ -1091,7 +1091,7 @@ static const char *tz_strings[] = {
|
|
|
/* Return 0 if mktime fails to convert a date in the spring-forward gap.
|
|
|
Based on a problem report from Andreas Jaeger. */
|
|
|
static int
|
|
|
-spring_forward_gap ()
|
|
|
+spring_forward_gap (void)
|
|
|
{
|
|
|
/* glibc (up to about 1998-10-07) failed this test. */
|
|
|
struct tm tm;
|
|
|
@@ -1128,7 +1128,7 @@ mktime_test (time_t now)
|
|
|
}
|
|
|
|
|
|
static int
|
|
|
-irix_6_4_bug ()
|
|
|
+irix_6_4_bug (void)
|
|
|
{
|
|
|
/* Based on code from Ariel Faigon. */
|
|
|
struct tm tm;
|
|
|
@@ -1170,7 +1170,7 @@ bigtime_test (int j)
|
|
|
}
|
|
|
|
|
|
static int
|
|
|
-year_2050_test ()
|
|
|
+year_2050_test (void)
|
|
|
{
|
|
|
/* The correct answer for 2050-02-01 00:00:00 in Pacific time,
|
|
|
ignoring leap seconds. */
|
|
|
--- a/lib/autoconf/specific.m4
|
|
|
+++ b/lib/autoconf/specific.m4
|
|
|
@@ -361,10 +361,9 @@ AC_INCLUDES_DEFAULT
|
|
|
/* Some platforms explicitly require an extern "C" signal handler
|
|
|
when using C++. */
|
|
|
#ifdef __cplusplus
|
|
|
-extern "C" void ucatch (int dummy) { }
|
|
|
-#else
|
|
|
-void ucatch (dummy) int dummy; { }
|
|
|
+extern "C"
|
|
|
#endif
|
|
|
+void ucatch (int dummy) { }
|
|
|
|
|
|
int
|
|
|
main (void)
|
|
|
cgit v1.1
|