From b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc Mon Sep 17 00:00:00 2001 From: Paul Eggert 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=utf8 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.47.2