public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r11-3262] aix: apply socket.h extern "C++" more narrowly.
@ 2020-09-17 14:19 David Edelsohn
  0 siblings, 0 replies; only message in thread
From: David Edelsohn @ 2020-09-17 14:19 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:21fdebc519578aad72c8550b05c05813c5b28c21

commit r11-3262-g21fdebc519578aad72c8550b05c05813c5b28c21
Author: David Edelsohn <dje.gcc@gmail.com>
Date:   Wed Sep 16 18:56:00 2020 +0000

    aix: apply socket.h extern "C++" more narrowly.
    
    Recent Technology Levels of AIX 7.2 have made sys/socket.h more C++-aware,
    which causes the fix to be applied in too many locations.  This patch adds
    more context for the selection to apply the fix more narrowly.
    
    fixincludes/ChangeLog:
    
    2020-09-17  David Edelsohn  <dje.gcc@gmail.com>
    
            * inclhack.def (aix_externcpp1): Add more context to select.
            (aix_externcpp2): Same.
            * fixincl.x: Regenerate.
            * tests/base/sys/socket.h: Update expected results.

Diff:
---
 fixincludes/fixincl.x               | 16 ++++++++++------
 fixincludes/inclhack.def            | 20 ++++++++++++--------
 fixincludes/tests/base/sys/socket.h |  2 ++
 3 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index b88139950e3..bf54305b9c0 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  January 25, 2020 at 12:15:43 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed  September 16, 2020 at 06:34:57 PM by AutoGen 5.18
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Jan 25 12:15:43 EST 2020
+/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Sep 16 18:34:57 UTC 2020
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -826,7 +826,8 @@ tSCC* apzAix_Externcpp1Machs[] = {
  *  content selection pattern - do fix if pattern found
  */
 tSCC zAix_Externcpp1Select0[] =
-       "#ifdef __cplusplus";
+       "#ifndef _KERNEL\n\
+#ifdef __cplusplus";
 
 #define    AIX_EXTERNCPP1_TEST_CT  1
 static tTestDesc aAix_Externcpp1Tests[] = {
@@ -837,7 +838,8 @@ static tTestDesc aAix_Externcpp1Tests[] = {
  */
 static const char* apzAix_Externcpp1Patch[] = {
     "format",
-    "#ifdef __cplusplus\n\
+    "#ifndef _KERNEL\n\
+#ifdef __cplusplus\n\
 extern \"C++\" {",
     (char*)NULL };
 
@@ -864,7 +866,8 @@ tSCC* apzAix_Externcpp2Machs[] = {
  *  content selection pattern - do fix if pattern found
  */
 tSCC zAix_Externcpp2Select0[] =
-       "#else  /\\* __cplusplus \\*/";
+       "#endif /\\* COMPAT_43 \\*/\n\
+#else  /\\* __cplusplus \\*/";
 
 #define    AIX_EXTERNCPP2_TEST_CT  1
 static tTestDesc aAix_Externcpp2Tests[] = {
@@ -875,7 +878,8 @@ static tTestDesc aAix_Externcpp2Tests[] = {
  */
 static const char* apzAix_Externcpp2Patch[] = {
     "format",
-    "} /* extern \"C++\" */\n\
+    "#endif /* COMPAT_43 */\n\
+} /* extern \"C++\" */\n\
 #else  /* __cplusplus */",
     (char*)NULL };
 
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index f58e7771e1c..3b397422bc1 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -553,24 +553,28 @@ fix = {
   hackname  = aix_externcpp1;
   mach      = "*-*-aix*";
   files     = "sys/socket.h";
-  select    = "#ifdef __cplusplus";
+  select    = "#ifndef _KERNEL\n"
+	      "#ifdef __cplusplus";
   c_fix     = format;
-  c_fix_arg = "#ifdef __cplusplus\n"
+  c_fix_arg = "#ifndef _KERNEL\n"
+	      "#ifdef __cplusplus\n"
               "extern \"C++\" {";
-  test_text = "#ifdef __cplusplus";
-
+  test_text = "#ifndef _KERNEL\n"
+	      "#ifdef __cplusplus";
 };
 
 fix = {
   hackname  = aix_externcpp2;
   mach      = "*-*-aix*";
   files     = "sys/socket.h";
-  select    = "#else  /\\* __cplusplus \\*/";
+  select    = "#endif /\\* COMPAT_43 \\*/\n"
+	      "#else  /\\* __cplusplus \\*/";
   c_fix     = format;
-  c_fix_arg = "} /* extern \"C++\" */\n"
+  c_fix_arg = "#endif /* COMPAT_43 */\n"
+	      "} /* extern \"C++\" */\n"
               "#else  /* __cplusplus */";
-  test_text = "#else  /* __cplusplus */";
-
+  test_text = "#endif /* COMPAT_43 */\n"
+	      "#else  /* __cplusplus */";
 };
 
 /*
diff --git a/fixincludes/tests/base/sys/socket.h b/fixincludes/tests/base/sys/socket.h
index 5d66f8be291..c1e2b425be1 100644
--- a/fixincludes/tests/base/sys/socket.h
+++ b/fixincludes/tests/base/sys/socket.h
@@ -10,12 +10,14 @@
 
 
 #if defined( AIX_EXTERNCPP1_CHECK )
+#ifndef _KERNEL
 #ifdef __cplusplus
 extern "C++" {
 #endif  /* AIX_EXTERNCPP1_CHECK */
 
 
 #if defined( AIX_EXTERNCPP2_CHECK )
+#endif /* COMPAT_43 */
 } /* extern "C++" */
 #else  /* __cplusplus */
 #endif  /* AIX_EXTERNCPP2_CHECK */


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-09-17 14:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-17 14:19 [gcc r11-3262] aix: apply socket.h extern "C++" more narrowly David Edelsohn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).