From 1ba47d8a203deb4a333911423d6a70e0a9d2c19e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Chigot?= <clement.chigot@atos.net>
Date: Thu, 1 Jul 2021 15:37:17 +0200
Subject: [PATCH 1/2] aix: apply socket.h extern "C++" even more narrowly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add more context to aix_externcpp1 selection to ensure
that the fix is correctly applied even in future AIX versions.

fixincludes/Changelog:
2021-07-01  Clément Chigot  <clement.chigot@atos.net>

	* inclhack.def (aix_externcpp1): Improve select regexp.
	* fixincl.x: Regenerate.
	* tests/base/sys/socket.h: Update.
---
 fixincludes/fixincl.x               | 10 ++++++----
 fixincludes/inclhack.def            |  9 ++++++---
 fixincludes/tests/base/sys/socket.h |  1 +
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index cc17edfba0b..6c50e972165 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
  *
  * DO NOT EDIT THIS FILE   (fixincl.x)
  *
- * It has been AutoGen-ed  February 22, 2018 at 03:46:51 PM by AutoGen 5.18
+ * It has been AutoGen-ed  July  1, 2021 at 03:44:46 PM by AutoGen 5.18.7
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Feb 22 15:46:51 UTC 2018
+/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Jul  1 15:44:46 CEST 2021
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -827,7 +827,8 @@ tSCC* apzAix_Externcpp1Machs[] = {
  */
 tSCC zAix_Externcpp1Select0[] =
        "#ifndef _KERNEL\n\
-#ifdef __cplusplus";
+#ifdef __cplusplus\n\
+extern \"C\" int naccept\\(int, struct sockaddr \\*, socklen_t \\*\\);";
 
 #define    AIX_EXTERNCPP1_TEST_CT  1
 static tTestDesc aAix_Externcpp1Tests[] = {
@@ -840,7 +841,8 @@ static const char* apzAix_Externcpp1Patch[] = {
     "format",
     "#ifndef _KERNEL\n\
 #ifdef __cplusplus\n\
-extern \"C++\" {",
+extern \"C++\" {\n\
+extern \"C\" int naccept(int, struct sockaddr *, socklen_t *);",
     (char*)NULL };
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 4db311713ef..b7ad6982e96 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -554,13 +554,16 @@ fix = {
   mach      = "*-*-aix*";
   files     = "sys/socket.h";
   select    = "#ifndef _KERNEL\n"
-	      "#ifdef __cplusplus";
+	      "#ifdef __cplusplus\n"
+	      "extern \"C\" int naccept\\(int, struct sockaddr \\*, socklen_t \\*\\);";
   c_fix     = format;
   c_fix_arg = "#ifndef _KERNEL\n"
 	      "#ifdef __cplusplus\n"
-              "extern \"C++\" {";
+	      "extern \"C++\" {\n"
+	      "extern \"C\" int naccept(int, struct sockaddr *, socklen_t *);";
   test_text = "#ifndef _KERNEL\n"
-	      "#ifdef __cplusplus";
+	      "#ifdef __cplusplus\n"
+	      "extern \"C\" int naccept(int, struct sockaddr *, socklen_t *);";
 };
 
 fix = {
diff --git a/fixincludes/tests/base/sys/socket.h b/fixincludes/tests/base/sys/socket.h
index c1e2b425be1..588a378fe0a 100644
--- a/fixincludes/tests/base/sys/socket.h
+++ b/fixincludes/tests/base/sys/socket.h
@@ -13,6 +13,7 @@
 #ifndef _KERNEL
 #ifdef __cplusplus
 extern "C++" {
+extern "C" int naccept(int, struct sockaddr *, socklen_t *);
 #endif  /* AIX_EXTERNCPP1_CHECK */
 
 
-- 
2.31.1
