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.
This commit is contained in:
David Edelsohn 2020-09-16 18:56:00 +00:00
parent b28b621ac6
commit 21fdebc519
3 changed files with 24 additions and 14 deletions

View File

@ -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 };

View File

@ -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 */";
};
/*

View File

@ -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 */