summaryrefslogtreecommitdiff
path: root/fixincludes
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2020-09-16 18:56:00 +0000
committerDavid Edelsohn <dje.gcc@gmail.com>2020-09-17 14:18:32 +0000
commit21fdebc519578aad72c8550b05c05813c5b28c21 (patch)
tree83333f5e15a717362e6226aa6a1d1a0f0b6f190d /fixincludes
parentb28b621ac67beee81a47adb50b954bcf751570fd (diff)
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.
Diffstat (limited to 'fixincludes')
-rw-r--r--fixincludes/fixincl.x16
-rw-r--r--fixincludes/inclhack.def20
-rw-r--r--fixincludes/tests/base/sys/socket.h2
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 */