autoconf2.69: import gentoo patches

so we get clang v16 compat
This commit is contained in:
Christoph Reiter 2023-03-20 11:15:32 +01:00
parent e442f703c7
commit 6e13dff723
6 changed files with 543 additions and 7 deletions

View File

@ -4,13 +4,12 @@
_realname=autoconf
pkgname=${_realname}2.69
pkgver=2.69
pkgrel=2
pkgrel=3
pkgdesc="A GNU tool for automatically configuring source code"
arch=('any')
license=('GPL2' 'GPL3' 'custom')
url="https://www.gnu.org/software/autoconf"
depends=('awk' 'm4' 'diffutils' 'bash' 'perl')
# for test-suite
makedepends=('gcc-fortran' 'make')
source=(https://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.xz
0001-fix-texinfo.patch
@ -18,29 +17,48 @@ source=(https://ftp.gnu.org/pub/gnu/${_realname}/${_realname}-${pkgver}.tar.xz
0003-autotest-remove-cr-from-prog-stdout-stderr.patch
0004-docs.patch
0005-package.patch
0006-autoconf2.5-2.69-perl-5.22-autoscan.patch)
autoconf-2.69-K-R-decls-clang.patch
autoconf-2.69-fix-libtool-test.patch
autoconf-2.69-make-tests-bash5-compatible.patch
autoconf-2.69-perl-5.26-2.patch
autoconf-2.69-perl-5.26.patch)
sha256sums=('64ebcec9f8ac5b2487125a86a7760d2591ac9e1d3dbd59489633f9de62a57684'
'ad42ff57d1ff3dd6ba06fe94f913a369f9210963856e8c955efed9a164609a64'
'9f31df02eb41df57a05ceea1d1442424d1cca63cd9304c953732fa6c65279a5a'
'74e2135a3f34f5692a77de85c21cb2f0fd8a1dcf396f7fbba7deb0c59faa54eb'
'bc973e76f3ea3941818099cb5a22081c8a9703338b3194fce3534a07ac32c078'
'a9bd30264a812672bf7fa7b67135871ccac4c84b30113b82ea7c2f5987e0d951'
'a1b6aafd4f42b244f8234b45132b130f26d5518ce202ca903c747a50f0020617')
'1253d17e557310f538b0a37fff8c36061a99c43158ed97a68cdf109cd58686b6'
'7793209b33013dc0f81208718c68440c5aae80e7a1c4b8d336e382525af791a7'
'176d4bf66920f66115aba6c44a71a7197b3d65038aac51ba51f61e241bc3e398'
'a49dd5bac3b62daa0ff688ab4d508d71dbd2f4f8d7e2a02321926346161bf3ee'
'35c449281546376449766f92d49fc121ca50e330e60fefcfc9be2af3253082c2')
prepare() {
cd ${srcdir}/${_realname}-${pkgver}
# MSYS2
patch -p1 -i ${srcdir}/0001-fix-texinfo.patch
patch -p1 -i ${srcdir}/0002-msys2.patch
patch -p1 -i ${srcdir}/0003-autotest-remove-cr-from-prog-stdout-stderr.patch
patch -p1 -i ${srcdir}/0004-docs.patch
patch -p1 -i ${srcdir}/0005-package.patch
patch -p1 -i ${srcdir}/0006-autoconf2.5-2.69-perl-5.22-autoscan.patch
# from gentoo: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/autoconf/files
patch -p1 -i ${srcdir}/autoconf-2.69-perl-5.26.patch
patch -p1 -i ${srcdir}/autoconf-2.69-fix-libtool-test.patch
patch -p1 -i ${srcdir}/autoconf-2.69-perl-5.26-2.patch
patch -p1 -i ${srcdir}/autoconf-2.69-make-tests-bash5-compatible.patch
patch -p1 -i ${srcdir}/autoconf-2.69-K-R-decls-clang.patch
}
build() {
cd ${srcdir}/${_realname}-${pkgver}
./configure --prefix=/usr --program-suffix=-2.69
./configure \
--prefix=/usr \
--program-suffix=-2.69
make
}

View File

@ -0,0 +1,394 @@
https://bugs.gentoo.org/870412
https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b
(and contains a backport of https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=bf5a75953b6d504f0405b1ca33b039b8dd39eef4)
Backport the K&R decls fix to 2.69 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 e6f401b94b58bb9bb58cd668a996e27663d3e6c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
Date: Mon, 19 Sep 2022 12:11:24 +0200
Subject: [PATCH] backport K&R decl fixes
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -97,7 +97,7 @@ m4_define([AC_LANG_PROGRAM(C)],
m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS])[]dnl
m4_ifdef([_AC_LANG_PROGRAM_C_FC_HOOKS], [_AC_LANG_PROGRAM_C_FC_HOOKS])[]dnl
int
-main ()
+main (void)
{
dnl Do *not* indent the following line: there may be CPP directives.
dnl Don't move the `;' right after for the same reason.
@@ -130,7 +130,7 @@ m4_if([$2], [main], ,
#ifdef __cplusplus
extern "C"
#endif
-char $2 ();])], [return $2 ();])])
+char $2 (void);])], [return $2 ();])])
# AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
@@ -154,7 +154,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
#define $1 innocuous_$1
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $1 (); below.
+ which can conflict with char $1 (void); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -172,7 +172,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
#ifdef __cplusplus
extern "C"
#endif
-char $1 ();
+char $1 (void);
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
@@ -201,8 +201,8 @@ return test_array @<:@0@:>@;
# But we include them only after the EXPRESSION has been evaluated.
m4_define([AC_LANG_INT_SAVE(C)],
[AC_LANG_PROGRAM([$1
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
+static long int longval (void) { return $2; }
+static unsigned long int ulongval (void) { return $2; }
@%:@include <stdio.h>
@%:@include <stdlib.h>],
[
@@ -1625,8 +1625,8 @@ for ac_kw in inline __inline__ __inline; do
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[#ifndef __cplusplus
typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
+static $ac_kw foo_t static_foo (void) {return 0; }
+$ac_kw foo_t foo (void) {return 0; }
#endif
])],
[ac_cv_c_inline=$ac_kw])
@@ -1949,7 +1949,7 @@ m4_define([_AC_LANG_OPENMP(C)],
choke me
#endif
#include <omp.h>
-int main () { return omp_get_num_threads (); }
+int main (void) { return omp_get_num_threads (); }
])
# _AC_LANG_OPENMP(C++)
--- a/lib/autoconf/functions.m4
+++ b/lib/autoconf/functions.m4
@@ -463,9 +463,6 @@ AC_CACHE_CHECK([whether closedir returns void],
[ac_cv_func_closedir_void],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
#include <$ac_header_dirent>
-#ifndef __cplusplus
-int closedir ();
-#endif
],
[[return closedir (opendir (".")) != 0;]])],
[ac_cv_func_closedir_void=no],
@@ -893,7 +890,7 @@ AC_CACHE_CHECK([for GNU libc compatible malloc], ac_cv_func_malloc_0_nonnull,
[[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
# include <stdlib.h>
#else
-char *malloc ();
+char *malloc (long);
#endif
]],
[return ! malloc (0);])],
@@ -1029,7 +1026,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;
@@ -1066,7 +1063,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;
@@ -1108,7 +1105,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. */
@@ -1138,7 +1135,7 @@ year_2050_test ()
}
int
-main ()
+main (void)
{
time_t t, delta;
int i, j;
@@ -1232,7 +1229,7 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
#include <sys/mman.h>
#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
+char *malloc (void *, long);
#endif
/* This mess was copied from the GNU getpagesize.h. */
@@ -1268,7 +1265,7 @@ char *malloc ();
#endif /* no HAVE_GETPAGESIZE */
int
-main ()
+main (void)
{
char *data, *data2, *data3;
const char *cdata2;
@@ -1398,7 +1395,7 @@ AC_CACHE_CHECK([for GNU libc compatible realloc], ac_cv_func_realloc_0_nonnull,
[[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
# include <stdlib.h>
#else
-char *realloc ();
+char *realloc (void *, long);
#endif
]],
[return ! realloc (0, 0);])],
@@ -1547,11 +1544,8 @@ AC_DEFUN([AC_FUNC_STRTOD],
AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
]AC_INCLUDES_DEFAULT[
-#ifndef strtod
-double strtod ();
-#endif
int
-main()
+main(void)
{
{
/* Some versions of Linux strtod mis-parse strings with leading '+'. */
@@ -1645,8 +1639,7 @@ AC_CACHE_CHECK([whether strerror_r returns char *],
# former has a strerror_r that returns char*, while the latter
# has a strerror_r that returns `int'.
# This test should segfault on the DEC system.
- AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
- extern char *strerror_r ();],
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
[[char buf[100];
char x = *strerror_r (0, buf, sizeof buf);
return ! isalpha (x);]])],
@@ -1879,7 +1872,7 @@ sparc_address_test (arg) int arg;
}
int
-main ()
+main (void)
{
pid_t parent = getpid ();
pid_t child;
@@ -1985,7 +1978,7 @@ AC_CACHE_CHECK([for wait3 that fills in rusage],
#include <sys/wait.h>
/* HP-UX has wait3 but does not fill in rusage at all. */
int
-main ()
+main (void)
{
struct rusage r;
int i;
--- a/lib/autoconf/headers.m4
+++ b/lib/autoconf/headers.m4
@@ -712,7 +712,7 @@ if test $ac_cv_header_stdc = yes; then
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
-main ()
+main (void)
{
int i;
for (i = 0; i < 256; i++)
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -257,7 +257,7 @@ void ucatch (dummy) int dummy; { }
#endif
int
-main ()
+main (void)
{
int i = fork (), status;
--- a/lib/autoconf/types.m4
+++ b/lib/autoconf/types.m4
@@ -267,7 +267,7 @@ AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
#define MAX(x, y) ((x) > (y) ? (x) : (y))
int
-main ()
+main (void)
{
gid_t gidset[NGID];
int i, n;
--- a/tests/c.at
+++ b/tests/c.at
@@ -354,7 +354,7 @@ AT_DATA([foo.c],
#endif
#include <stdio.h>
-int main ()
+int main (void)
{
#ifdef _OPENMP
#pragma omp parallel
@@ -404,7 +404,7 @@ foo.@OBJEXT@: foo.cpp
]])
AT_DATA([foo.cpp],
-[[int main ()
+[[int main (void)
{
return 0;
}
--- a/tests/compile.at
+++ b/tests/compile.at
@@ -124,7 +124,7 @@ AC_PROG_CC
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef PACKAGE_NAME
choke me
#endif
-int main ()
+int main (void)
{
return 0;
}
@@ -150,7 +150,7 @@ AC_LANG([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef PACKAGE_NAME
choke me
#endif
-int main ()
+int main (void)
{
return 0;
}
@@ -249,7 +249,7 @@ AT_CHECK([sed -n 's/ *$//; /#define PACKAGE/,$p' stdout], [],
const char hw[] = "Hello, World\n";
int
-main ()
+main (void)
{
fputs (hw, stdout);
;
@@ -269,7 +269,7 @@ AT_KEYWORDS([AC_LANG_DEFINES_PROVIDED])
AT_DATA([configure.ac],
[[AC_INIT
-AC_COMPILE_IFELSE([int main () { return 0; }], [],
+AC_COMPILE_IFELSE([int main (void) { return 0; }], [],
[AC_MSG_ERROR([compiling trivial program failed])])
]])
@@ -280,7 +280,7 @@ AT_CHECK_CONFIGURE([-q])
AT_DATA([configure.ac],
[[AC_INIT
-AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED()int main () { return 0; }], [],
+AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED()int main (void) { return 0; }], [],
[AC_MSG_ERROR([compiling trivial program failed])])
]])
@@ -324,7 +324,7 @@ test $estatus != 2 &&
AC_MSG_ERROR([did not get as 2 exit status: $estatus])])
# The old stinky one.
-AC_TRY_RUN([int main () { return 3; }],
+AC_TRY_RUN([int main (void) { return 3; }],
[AC_MSG_ERROR([saw `return 3' as a success])],
[estatus=$?
test $estatus != 3 &&
--- a/tests/fortran.at
+++ b/tests/fortran.at
@@ -223,7 +223,7 @@ void FOOBAR_F77 (double *x, double *y);
# ifdef __cplusplus
extern "C"
# endif
- int F77_DUMMY_MAIN () { return 1; }
+ int F77_DUMMY_MAIN (void) { return 1; }
#endif
int main(int argc, char *argv[])
@@ -301,7 +301,7 @@ void FOOBAR_FC(double *x, double *y);
# ifdef __cplusplus
extern "C"
# endif
- int FC_DUMMY_MAIN () { return 1; }
+ int FC_DUMMY_MAIN (void) { return 1; }
#endif
int main (int argc, char *argv[])
@@ -533,7 +533,7 @@ void @foobar@ (int *x);
# ifdef __cplusplus
extern "C"
# endif
- int F77_DUMMY_MAIN () { return 1; }
+ int F77_DUMMY_MAIN (void) { return 1; }
#endif
int main(int argc, char *argv[])
@@ -607,7 +607,7 @@ void @foobar@ (int *x);
# ifdef __cplusplus
extern "C"
# endif
- int FC_DUMMY_MAIN () { return 1; }
+ int FC_DUMMY_MAIN (void) { return 1; }
#endif
int main(int argc, char *argv[])
--- a/tests/semantics.at
+++ b/tests/semantics.at
@@ -107,7 +107,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS],
[[int yes = 1;
enum { myenum };
struct { int x[20]; } mystruct;
- extern int myfunc();
+ extern int myfunc (void);
#define mymacro1(arg) arg
#define mymacro2]])
# The difference in space-before-open-paren is intentional.
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -1106,9 +1106,7 @@ struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*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];
}
--- a/lib/autoconf/specific.m4
+++ b/lib/autoconf/specific.m4
@@ -251,10 +251,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)

View File

@ -0,0 +1,31 @@
From 247b02e5a5bb79ca6666e91de02ae2d3cb0cd325 Mon Sep 17 00:00:00 2001
From: "Gary V. Vaughan" <gary@gnu.org>
Date: Mon, 3 Nov 2014 07:25:03 +0100
Subject: tests: avoid spurious test failure with libtool 2.4.3
Based on a report by Bruce Dubbs.
* tests/foreign.at (Libtool): Be tolerant of 'quote' replacing the
older `quote'.
Signed-off-by: Eric Blake <eblake@redhat.com>
---
tests/foreign.at | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/foreign.at b/tests/foreign.at
index a9dc33c..d4702cd 100644
--- a/tests/foreign.at
+++ b/tests/foreign.at
@@ -57,7 +57,7 @@ AT_CHECK([./config.guess || exit 77], [], [ignore], [ignore])
# Make sure at-path contains something valid, and let the test suite
# display it when verbose. And fail, skipping would too easily hide
# problems.
-AT_CHECK([sed -n ["s,^.*\`\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
+AT_CHECK([sed -n ["s,^[^']*[\`']\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
AT_CHECK([test -f "`sed -n 1p stdout`"])
# Older libtoolize installed everything but install-sh...
--
cgit v1.0-41-gc330

View File

@ -0,0 +1,63 @@
From 5b9db67786a428164abafe626ab11a2754aad528 Mon Sep 17 00:00:00 2001
From: Ondrej Dubaj <odubaj@redhat.com>
Date: Wed, 28 Aug 2019 07:39:50 +0200
Subject: Port tests to Bash 5
* tests/local.at (AT_CHECK_ENV, AT_CONFIG_CMP):
Add BASH_ARGC, BASH_ARGV to list of variables to be ignored when
comparing variable space dumps.
(AT_CONFIG_CMP): Also ignore LINENO.
* tests/m4sh.at: Also unset LINENO in 'reference' and 'test/test-1'.
---
tests/local.at | 5 ++++-
tests/m4sh.at | 4 ++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/tests/local.at b/tests/local.at
index a22958c0..852be285 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -325,7 +325,7 @@ if test -f state-env.before && test -f state-env.after; then
[AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC],
[GREP|[EF]GREP|SED],
[[_@]|.[*#?$].],
- [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
+ [argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
$act_file ||
test $? -eq 1 || echo failed >&2
) 2>stderr-$act_file |
@@ -382,6 +382,9 @@ do
/'\'\\\$\''=/ d
/^argv=/ d
/^ARGC=/ d
+ /^BASH_ARGC=/ d
+ /^BASH_ARGV=/ d
+ /^LINENO=/ d
' $act_file >at_config_vars-$act_file
done
AT_CMP([at_config_vars-$1], [at_config_vars-$2])[]dnl
diff --git a/tests/m4sh.at b/tests/m4sh.at
index e9d70b02..cbdfcb62 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -254,7 +254,7 @@ AT_CHECK([autom4te -l m4sh $1.as -o $1])
# `_oline_', once processed and ran, produces our reference.
# We check that we find ourselves by looking at a string which is
# available only in the original script: `_oline_'.
-AT_DATA_LINENO([reference], [false], [__OLINE__], [_oline__])
+AT_DATA_LINENO([reference], [true], [__OLINE__], [_oline__])
AT_CHECK([./reference], 0, [stdout])
# The reference:
@@ -264,7 +264,7 @@ mv stdout expout
# Be sure to be out of the PATH.
AT_CHECK([mkdir test || exit 77])
-AT_DATA_LINENO([test/test-1], [false], [__LINENO__], [LINENO])
+AT_DATA_LINENO([test/test-1], [true], [__LINENO__], [LINENO])
AT_CHECK([./test/test-1], 0, [expout])
AT_CHECK([(PATH=test$PATH_SEPARATOR$PATH; export PATH; exec test-1)],
0, [expout])
--
cgit v1.2.1

View File

@ -0,0 +1,30 @@
https://bugs.gentoo.org/625576
--- autoconf-2.69/bin/autoheader.in
+++ autoconf-2.69/bin/autoheader.in
@@ -173,6 +173,12 @@
# Source what the traces are trying to tell us.
verb "$me: running $autoconf to trace from $ARGV[0]";
my $quoted_tmp = shell_quote ($tmp);
+my $perl_tmp;
+if ( $tmp =~ /^\// ) {
+ $perl_tmp=$tmp;
+} else {
+ $perl_tmp="./".$tmp;
+}
xsystem ("$autoconf"
# If you change this list, update the
# `Autoheader-preselections' section of autom4te.in.
@@ -182,9 +188,9 @@
. " " . shell_quote ($ARGV[0]) . " >$quoted_tmp/traces.pl");
local (%verbatim, %symbol);
-debug "$me: \`do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
-do "$tmp/traces.pl";
-warn "couldn't parse $tmp/traces.pl: $@" if $@;
+debug "$me: \`do'ing $perl_tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
+do "$perl_tmp/traces.pl";
+warn "couldn't parse $perl_tmp/traces.pl: $@" if $@;
unless ($config_h)
{
error "error: AC_CONFIG_HEADERS not found in $ARGV[0]";

View File

@ -24,5 +24,5 @@ index 993a750..db1df79 100644
# Tokens in the code.
--
2.1.0
1.9.1