!39 fix AC_CHECK_LIB no longer works with g++ (debian bug#992981)

From: @fundawang 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
This commit is contained in:
openeuler-ci-bot 2024-12-05 09:52:41 +00:00 committed by Gitee
commit 739a05df32
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 108 additions and 1 deletions

View File

@ -3,7 +3,7 @@
Name: autoconf
Version: 2.71
Release: 4
Release: 8
Summary: An extensible package to automatically configure software source code packages
License: GPLv2+ and GPLv3+ and GFDL-1.3-only
URL: https://www.gnu.org/software/%{name}/
@ -12,6 +12,8 @@ Source1: config.site
Source2: autoconf-el.el
Patch1: backport-_AC_PROG_CXX_STDCXX_EDITION_TRY-fix-typo-in-variable.patch
Patch2: backport-Fix-testsuite-failures-with-bash-5.2.patch
Patch3: backport-Port-AC_LANG_CALL-C-to-C.patch.patch
Patch9000: skip-one-test-at-line-1616-of-autotest.patch
@ -72,6 +74,10 @@ fi
%changelog
* Wed Dec 04 2024 Funda Wang <fundawang@yeah.net> - 2.71-8
- fix AC_CHECK_LIB no longer works with g++ (debian bug#992981)
- Fix testsuite failures with bash 5.2.15
* Wed Jun 12 2024 fuanan <fuanan3@h-partners.com> - 2.71-4
- Type:bugfix
- ID:NA

View File

@ -0,0 +1,65 @@
From 412166e185c00d6eacbe67dfcb0326f622ec4020 Mon Sep 17 00:00:00 2001
From: Xi Ruoyao <xry111@xry111.site>
Date: Fri, 30 Sep 2022 11:36:03 -0400
Subject: [PATCH] Fix testsuite failures with bash 5.2.
Bash v5.2 includes several new optimizations to the number of
subshells used for various constructs; as a side effect, the value of
SHLVL is less stable than it used to be. Add SHLVL to the list of
built-in shell variables with unstable values, to be ignored when
checking for inappropriate differences to the shell environment
before and after a macro invocation / between two configure runs.
Problem and solution reported by Xi Ruoyao in
https://lists.gnu.org/archive/html/autoconf/2022-09/msg00015.html
Problem also reported by Bruce Dubbs in
https://lists.gnu.org/archive/html/bug-autoconf/2022-09/msg00010.html
* tests/local.at (_AT_CHECK_ENV, AT_CONFIG_CMP): Ignore changes in
value of SHLVL.
Copyright-paperwork-exempt: yes
---
tests/local.at | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/local.at b/tests/local.at
index 193fd118..a9cf4050 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -352,7 +352,7 @@ m4_define([AT_CHECK_CONFIGURE],
# - AC_SUBST'ed variables
# (FIXME: Generate a list of these automatically.)
# - _|@|.[*#?$].|argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS
-# |START_TIME|ToD|_AST_FEATURES
+# |SHLVL|START_TIME|ToD|_AST_FEATURES
# Some variables some shells use and change.
# `.[*#?$].' catches `$#' etc. which are displayed like this:
# | '!'=18186
@@ -404,7 +404,7 @@ if test -f state-env.before && test -f state-env.after; then
[GREP|[EF]GREP|SED],
[[_@]|.[*@%:@?$].],
[argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM],
- [SECONDS|START_TIME|ToD|_AST_FEATURES]))=' \
+ [SECONDS|SHLVL|START_TIME|ToD|_AST_FEATURES]))=' \
$act_file ||
test $? -eq 1 || echo failed >&2
) 2>stderr-$act_file |
@@ -435,6 +435,7 @@ fi
# - PPID [bash, zsh]
# - RANDOM [bash, zsh]
# - SECONDS [bash, zsh]
+# - SHLVL [bash]
# - START_TIME [NetBSD sh]
# - ToD [NetBSD sh]
# - '$' [zsh]
@@ -483,6 +484,7 @@ do
/^PPID=/ d
/^RANDOM=/ d
/^SECONDS=/ d
+ /^SHLVL=/ d
/^START_TIME=/ d
/^ToD=/ d
/'\'\\\$\''=/ d
--
2.27.0

View File

@ -0,0 +1,36 @@
From b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue, 31 Aug 2021 16:30:46 -0700
Subject: [PATCH] Port AC_LANG_CALL(C) to C++
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* lib/autoconf/c.m4 (AC_LANG_CALL(C)): Add an extern "C" if C++.
Problem reported by Vincent Lefèvre (sr #110532).
---
lib/autoconf/c.m4 | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
index 44443a39..48bd49a3 100644
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -126,7 +126,13 @@ m4_define([AC_LANG_CALL(C)],
m4_if([$2], [main], ,
[/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
+ builtin and then its argument prototype would still apply.
+ The 'extern "C"' is for builds by C++ compilers;
+ although this is not generally supported in C code, supporting it here
+ has little cost and some practical benefit (sr 110532). */
+#ifdef __cplusplus
+extern "C"
+#endif
char $2 ();])], [return $2 ();])])
--
2.43.5