aix: SYSTEM_IMPLICIT_EXTERN_C

AIX 7.3 system headers are C++ safe and GCC no longer needs to define
SYSTEM_IMPLICIT_EXTERN_C for AIX 7.3.  This patch moves the definition
from aix.h to the individual OS-level configuration files and does not
define the macro for AIX 7.3.

The patch also corrects the definition of TARGET_AIX_VERSION to 73.

gcc/ChangeLog:
	* config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete.
	* config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define.
	* config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define.
	* config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73.
This commit is contained in:
David Edelsohn 2021-08-24 16:48:57 -04:00
parent 81e1894456
commit 9cf3f026e2
4 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-3.0-or-later
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 POWER running AIX.
Copyright (C) 2000-2021 Free Software Foundation, Inc.
@ -23,9 +24,6 @@
#undef TARGET_AIX
#define TARGET_AIX 1
/* System headers are not C++-aware. */
#define SYSTEM_IMPLICIT_EXTERN_C 1
/* Linux64.h wants to redefine TARGET_AIX based on -m64, but it can't be used
in the #if conditional in options-default.h, so provide another macro. */
#undef TARGET_AIX_OS

View File

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-3.0-or-later
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 POWER running AIX V7.1.
Copyright (C) 2002-2021 Free Software Foundation, Inc.
@ -268,6 +269,9 @@ extern long long int atoll(const char *);
#define SET_CMODEL(opt) do {} while (0)
#endif
/* System headers are not C++-aware. */
#define SYSTEM_IMPLICIT_EXTERN_C 1
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
but does not have crtbegin/end. */

View File

@ -270,6 +270,9 @@ extern long long int atoll(const char *);
#define SET_CMODEL(opt) do {} while (0)
#endif
/* System headers are not C++-aware. */
#define SYSTEM_IMPLICIT_EXTERN_C 1
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
but does not have crtbegin/end. */

View File

@ -274,7 +274,7 @@ extern long long int atoll(const char *);
/* This target defines SUPPORTS_WEAK and TARGET_ASM_NAMED_SECTION,
but does not have crtbegin/end. */
#define TARGET_AIX_VERSION 72
#define TARGET_AIX_VERSION 73
/* AIX 7.2 supports DWARF3+ debugging. */
#define DWARF2_DEBUGGING_INFO 1