2012-03-12 Tristan Gingold <gingold@adacore.com>

* inclhack.def (vms_use_quoted_include,vms_add_missing_braces)
	(vms_do_not_redeclare_hostalias, vms_decc_builtin)
	(vms_no_64bit_getopt, vms_forward_declare_struct)
	(vms_use_fast_setjmp): New fixes.
	* fixincl.x: Regenerate.
	* tests/base/rtldef/string.h: Update.
	* tests/base/rtldef/if.h, tests/base/rtldef/resolv.h,
	* tests/base/rtldef/setjmp.h, tests/base/rtldef/signal.h,
	* tests/base/rtldef/stdio.h, tests/base/rtldef/wait.h: New files.

From-SVN: r185230
This commit is contained in:
Tristan Gingold 2012-03-12 14:23:03 +00:00 committed by Tristan Gingold
parent 21fa2faf26
commit 24219d3890
10 changed files with 548 additions and 5 deletions

View File

@ -1,3 +1,15 @@
2012-03-12 Tristan Gingold <gingold@adacore.com>
* inclhack.def (vms_use_quoted_include,vms_add_missing_braces)
(vms_do_not_redeclare_hostalias, vms_decc_builtin)
(vms_no_64bit_getopt, vms_forward_declare_struct)
(vms_use_fast_setjmp): New fixes.
* fixincl.x: Regenerate.
* tests/base/rtldef/string.h: Update.
* tests/base/rtldef/if.h, tests/base/rtldef/resolv.h,
* tests/base/rtldef/setjmp.h, tests/base/rtldef/signal.h,
* tests/base/rtldef/stdio.h, tests/base/rtldef/wait.h: New files.
2012-01-11 Bruce Korb <bkorb@gnu.org>
Steven G. Kargl <kargl@gcc.gnu.org>
Andreas Tobler <andreast@fgznet.ch>

View File

@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
* It has been AutoGen-ed January 9, 2012 at 11:55:38 PM by AutoGen 5.12
* It has been AutoGen-ed March 12, 2012 at 10:19:44 AM by AutoGen 5.11.1
* From the definitions inclhack.def
* and the template file fixincl
*/
/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Jan 9 23:55:38 CET 2012
/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Mar 12 10:19:44 CET 2012
*
* You must regenerate it. Use the ./genfixes script.
*
@ -15,7 +15,7 @@
* certain ANSI-incompatible system header files which are fixed to work
* correctly with ANSI C and placed in a directory that GNU C will search.
*
* This file contains 223 fixup descriptions.
* This file contains 230 fixup descriptions.
*
* See README for more information.
*
@ -8672,6 +8672,272 @@ static const char* apzVms_Disable_Decc_String_BuiltinsPatch[] = {
"#if !defined(__VAX) && !defined(__GNUC__)\n",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Use_Quoted_Include fix
*/
tSCC zVms_Use_Quoted_IncludeName[] =
"vms_use_quoted_include";
/*
* File name selection pattern
*/
tSCC zVms_Use_Quoted_IncludeList[] =
"rtldef/wait.h\0starlet_c/pthread.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Use_Quoted_IncludeMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Use_Quoted_IncludeSelect0[] =
"(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>";
#define VMS_USE_QUOTED_INCLUDE_TEST_CT 1
static tTestDesc aVms_Use_Quoted_IncludeTests[] = {
{ TT_EGREP, zVms_Use_Quoted_IncludeSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Use_Quoted_Include
*/
static const char* apzVms_Use_Quoted_IncludePatch[] = {
"format",
"%1<sys/%2.h>",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Add_Missing_Braces fix
*/
tSCC zVms_Add_Missing_BracesName[] =
"vms_add_missing_braces";
/*
* File name selection pattern
*/
tSCC zVms_Add_Missing_BracesList[] =
"rtldef/signal.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Add_Missing_BracesMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Add_Missing_BracesSelect0[] =
"(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)";
#define VMS_ADD_MISSING_BRACES_TEST_CT 1
static tTestDesc aVms_Add_Missing_BracesTests[] = {
{ TT_EGREP, zVms_Add_Missing_BracesSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Add_Missing_Braces
*/
static const char* apzVms_Add_Missing_BracesPatch[] = {
"format",
"%1 {%2} ",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Do_Not_Redeclare_Hostalias fix
*/
tSCC zVms_Do_Not_Redeclare_HostaliasName[] =
"vms_do_not_redeclare_hostalias";
/*
* File name selection pattern
*/
tSCC zVms_Do_Not_Redeclare_HostaliasList[] =
"rtldef/resolv.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Do_Not_Redeclare_HostaliasMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Do_Not_Redeclare_HostaliasSelect0[] =
"(void[ \t]+fp_nquery \\(const u_char \\*, int, FILE \\*\\);)\n\
(__char_ptr32[ \t]+hostalias \\(const char \\*\\);)";
#define VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT 1
static tTestDesc aVms_Do_Not_Redeclare_HostaliasTests[] = {
{ TT_EGREP, zVms_Do_Not_Redeclare_HostaliasSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Do_Not_Redeclare_Hostalias
*/
static const char* apzVms_Do_Not_Redeclare_HostaliasPatch[] = {
"format",
"%1\n\
/* %2 */",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Decc_Builtin fix
*/
tSCC zVms_Decc_BuiltinName[] =
"vms_decc_builtin";
/*
* File name selection pattern
*/
tSCC zVms_Decc_BuiltinList[] =
"rtldef/string.h\0rtldef/time.h\0rtldef/strings.h\0rtldef/socket.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Decc_BuiltinMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Decc_BuiltinSelect0[] =
"(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)";
#define VMS_DECC_BUILTIN_TEST_CT 1
static tTestDesc aVms_Decc_BuiltinTests[] = {
{ TT_EGREP, zVms_Decc_BuiltinSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Decc_Builtin
*/
static const char* apzVms_Decc_BuiltinPatch[] = { sed_cmd_z,
"-e", "s@__MEMSET@memset@",
"-e", "s@__MEMMOVE@memmove@",
"-e", "s@__MEMCPY@memcpy@",
"-e", "s@__STRLEN@strlen@",
"-e", "s@__STRCPY@strcpy@",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_No_64bit_Getopt fix
*/
tSCC zVms_No_64bit_GetoptName[] =
"vms_no_64bit_getopt";
/*
* File name selection pattern
*/
tSCC zVms_No_64bit_GetoptList[] =
"rtldef/stdio.h\0rtldef/unistd.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_No_64bit_GetoptMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_No_64bit_GetoptSelect0[] =
"^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n";
#define VMS_NO_64BIT_GETOPT_TEST_CT 1
static tTestDesc aVms_No_64bit_GetoptTests[] = {
{ TT_EGREP, zVms_No_64bit_GetoptSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_No_64bit_Getopt
*/
static const char* apzVms_No_64bit_GetoptPatch[] = {
"format",
"#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */\n\
%0#endif\n",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Forward_Declare_Struct fix
*/
tSCC zVms_Forward_Declare_StructName[] =
"vms_forward_declare_struct";
/*
* File name selection pattern
*/
tSCC zVms_Forward_Declare_StructList[] =
"rtldef/if.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Forward_Declare_StructMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Forward_Declare_StructSelect0[] =
"(/\\* forward decls for C\\+\\+ \\*/\n\
)#ifdef __cplusplus\n";
#define VMS_FORWARD_DECLARE_STRUCT_TEST_CT 1
static tTestDesc aVms_Forward_Declare_StructTests[] = {
{ TT_EGREP, zVms_Forward_Declare_StructSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Forward_Declare_Struct
*/
static const char* apzVms_Forward_Declare_StructPatch[] = {
"format",
"%1#if defined (__cplusplus) || defined (__GNUC__)\n",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Vms_Use_Fast_Setjmp fix
*/
tSCC zVms_Use_Fast_SetjmpName[] =
"vms_use_fast_setjmp";
/*
* File name selection pattern
*/
tSCC zVms_Use_Fast_SetjmpList[] =
"rtldef/setjmp.h\0";
/*
* Machine/OS name selection pattern
*/
tSCC* apzVms_Use_Fast_SetjmpMachs[] = {
"*-*-*vms*",
(const char*)NULL };
/*
* content selection pattern - do fix if pattern found
*/
tSCC zVms_Use_Fast_SetjmpSelect0[] =
"(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)";
#define VMS_USE_FAST_SETJMP_TEST_CT 1
static tTestDesc aVms_Use_Fast_SetjmpTests[] = {
{ TT_EGREP, zVms_Use_Fast_SetjmpSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for Vms_Use_Fast_Setjmp
*/
static const char* apzVms_Use_Fast_SetjmpPatch[] = {
"format",
"%0 defined (__GNUC__) ||",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Description of Void_Null fix
@ -9069,9 +9335,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
#define REGEX_COUNT 265
#define REGEX_COUNT 272
#define MACH_LIST_SIZE_LIMIT 181
#define FIX_COUNT 223
#define FIX_COUNT 230
/*
* Enumerate the fixes
@ -9291,6 +9557,13 @@ typedef enum {
VMS_DEFINE_CAN_USE_EXTERN_PREFIX_FIXIDX,
VMS_USE_PRAGMA_EXTERN_MODEL_FIXIDX,
VMS_DISABLE_DECC_STRING_BUILTINS_FIXIDX,
VMS_USE_QUOTED_INCLUDE_FIXIDX,
VMS_ADD_MISSING_BRACES_FIXIDX,
VMS_DO_NOT_REDECLARE_HOSTALIAS_FIXIDX,
VMS_DECC_BUILTIN_FIXIDX,
VMS_NO_64BIT_GETOPT_FIXIDX,
VMS_FORWARD_DECLARE_STRUCT_FIXIDX,
VMS_USE_FAST_SETJMP_FIXIDX,
VOID_NULL_FIXIDX,
VXWORKS_GCC_PROBLEM_FIXIDX,
VXWORKS_NEEDS_VXTYPES_FIXIDX,
@ -10373,6 +10646,41 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
VMS_DISABLE_DECC_STRING_BUILTINS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Disable_Decc_String_BuiltinsTests, apzVms_Disable_Decc_String_BuiltinsPatch, 0 },
{ zVms_Use_Quoted_IncludeName, zVms_Use_Quoted_IncludeList,
apzVms_Use_Quoted_IncludeMachs,
VMS_USE_QUOTED_INCLUDE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Use_Quoted_IncludeTests, apzVms_Use_Quoted_IncludePatch, 0 },
{ zVms_Add_Missing_BracesName, zVms_Add_Missing_BracesList,
apzVms_Add_Missing_BracesMachs,
VMS_ADD_MISSING_BRACES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Add_Missing_BracesTests, apzVms_Add_Missing_BracesPatch, 0 },
{ zVms_Do_Not_Redeclare_HostaliasName, zVms_Do_Not_Redeclare_HostaliasList,
apzVms_Do_Not_Redeclare_HostaliasMachs,
VMS_DO_NOT_REDECLARE_HOSTALIAS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Do_Not_Redeclare_HostaliasTests, apzVms_Do_Not_Redeclare_HostaliasPatch, 0 },
{ zVms_Decc_BuiltinName, zVms_Decc_BuiltinList,
apzVms_Decc_BuiltinMachs,
VMS_DECC_BUILTIN_TEST_CT, FD_MACH_ONLY,
aVms_Decc_BuiltinTests, apzVms_Decc_BuiltinPatch, 0 },
{ zVms_No_64bit_GetoptName, zVms_No_64bit_GetoptList,
apzVms_No_64bit_GetoptMachs,
VMS_NO_64BIT_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_No_64bit_GetoptTests, apzVms_No_64bit_GetoptPatch, 0 },
{ zVms_Forward_Declare_StructName, zVms_Forward_Declare_StructList,
apzVms_Forward_Declare_StructMachs,
VMS_FORWARD_DECLARE_STRUCT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Forward_Declare_StructTests, apzVms_Forward_Declare_StructPatch, 0 },
{ zVms_Use_Fast_SetjmpName, zVms_Use_Fast_SetjmpList,
apzVms_Use_Fast_SetjmpMachs,
VMS_USE_FAST_SETJMP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aVms_Use_Fast_SetjmpTests, apzVms_Use_Fast_SetjmpPatch, 0 },
{ zVoid_NullName, zVoid_NullList,
apzVoid_NullMachs,
VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,

View File

@ -4610,6 +4610,129 @@ fix = {
test_text = "#if !defined(__VAX)\n";
};
/*
* On VMS, change <resource.h> to <sys/resource.h> to avoid a
* conflict while building gcc. Likewise for <builtins.h>
*/
fix = {
hackname = vms_use_quoted_include;
select = "(#[ \t]*include[ \t]+)<(resource|builtins)\\.h>";
mach = "*-*-*vms*";
files = rtldef/wait.h, starlet_c/pthread.h;
c_fix = format;
c_fix_arg = '%1<sys/%2.h>';
test_text = "# include <resource.h>";
};
/*
* On VMS, add missing braces around sigset_t constants.
*/
fix = {
hackname = vms_add_missing_braces;
select = "(_SIG_[A-Z]+_SET[ \t]+= \\{)(0x[0F]+, 0x[0F]+)";
mach = "*-*-*vms*";
files = "rtldef/signal.h";
c_fix = format;
c_fix_arg = '%1 {%2} ';
test_text = "static const __sigset_t _SIG_EMPTY_SET = "
"{0x00000000, 0x00000000},\n"
" _SIG_FULL_SET = {0xFFFFFFFF, 0xFFFFFFFF};\n";
};
/*
* On VMS, fix incompatible redeclaration of hostalias.
*/
fix = {
hackname = vms_do_not_redeclare_hostalias;
select = "(void[ \t]+fp_nquery \\(const u_char \\*, int, FILE \\*\\);)\n"
"(__char_ptr32[ \t]+hostalias \\(const char \\*\\);)";
mach = "*-*-*vms*";
files = "rtldef/resolv.h";
c_fix = format;
c_fix_arg = "%1\n"
"/* %2 */";
test_text = "void fp_nquery (const u_char *, int, FILE *);\n"
"__char_ptr32 hostalias (const char *);\n";
};
/*
* On VMS, some DEC-C builtins are directly used.
*/
fix = {
hackname = vms_decc_builtin;
select = "(__MEMSET|__MEMMOVE|__MEMCPY|__STRLEN|__STRCPY)";
mach = "*-*-*vms*";
files = rtldef/string.h, rtldef/time.h, rtldef/strings.h,
rtldef/socket.h;
sed = "s@__MEMSET@memset@";
sed = "s@__MEMMOVE@memmove@";
sed = "s@__MEMCPY@memcpy@";
sed = "s@__STRLEN@strlen@";
sed = "s@__STRCPY@strcpy@";
test_text = "define FD_ZERO(__p) __MEMSET((__p), 0, sizeof(*(__p)))\n";
};
/*
* On VMS, do not declare getopt and al if pointers are 64 bit.
*/
fix = {
hackname = vms_no_64bit_getopt;
select = "^[ \t]*(extern[ \t]*)?(int[ \t]*(getopt|optind|opterr|optopt)|(char \\*optarg))([ \t]*\\(.*\\))?;\n";
/* select = "^[ \t](extern[ \t))?(int[ \t](getopt|optind|opterr|optopt))|(char *optarg).*;\n"; */
mach = "*-*-*vms*";
files = rtldef/stdio.h, rtldef/unistd.h;
c_fix = format;
c_fix_arg = "#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */\n"
"%0"
"#endif\n";
test_text = "int getopt (int, char * const [], const char *);";
};
/*
* On VMS, forward declare structure before referencing them in prototypes.
*/
fix = {
hackname = vms_forward_declare_struct;
select = "(/\\* forward decls for C\\+\\+ \\*/\n)"
"#ifdef __cplusplus\n";
mach = "*-*-*vms*";
files = rtldef/if.h;
c_fix = format;
c_fix_arg = "%1"
"#if defined (__cplusplus) || defined (__GNUC__)\n";
test_text = "/* forward decls for C++ */\n"
"#ifdef __cplusplus\n"
"struct foo;\n"
"#endif\n";
};
/*
* On VMS, force the use of fast setjmp, as the normal setjmp uses conditions
* which is not yet fully supported by gcc.
*/
fix = {
hackname = vms_use_fast_setjmp;
select = "(#[ \t]*if[ \t]*defined\\(__FAST_SETJMP\\)[ \t]*\\|\\|)";
mach = "*-*-*vms*";
files = rtldef/setjmp.h;
c_fix = format;
c_fix_arg = "%0 defined (__GNUC__) ||";
test_text = "# if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP)";
};
/*
* AIX and Interix headers define NULL to be cast to a void pointer,
* which is illegal in ANSI C++.

View File

@ -0,0 +1,18 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/if.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_FORWARD_DECLARE_STRUCT_CHECK )
/* forward decls for C++ */
#if defined (__cplusplus) || defined (__GNUC__)
struct foo;
#endif
#endif /* VMS_FORWARD_DECLARE_STRUCT_CHECK */

View File

@ -0,0 +1,16 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/resolv.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_DO_NOT_REDECLARE_HOSTALIAS_CHECK )
void fp_nquery (const u_char *, int, FILE *);
/* __char_ptr32 hostalias (const char *); */
#endif /* VMS_DO_NOT_REDECLARE_HOSTALIAS_CHECK */

View File

@ -0,0 +1,14 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/setjmp.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_USE_FAST_SETJMP_CHECK )
# if defined(__FAST_SETJMP) || defined (__GNUC__) || defined(__UNIX_SETJMP)
#endif /* VMS_USE_FAST_SETJMP_CHECK */

View File

@ -0,0 +1,16 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/signal.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_ADD_MISSING_BRACES_CHECK )
static const __sigset_t _SIG_EMPTY_SET = { {0x00000000, 0x00000000} },
_SIG_FULL_SET = { {0xFFFFFFFF, 0xFFFFFFFF} };
#endif /* VMS_ADD_MISSING_BRACES_CHECK */

View File

@ -0,0 +1,16 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/stdio.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_NO_64BIT_GETOPT_CHECK )
#if __INITIAL_POINTER_SIZE != 64 /* getopt is short ptr only. */
int getopt (int, char * const [], const char *);
#endif
#endif /* VMS_NO_64BIT_GETOPT_CHECK */

View File

@ -13,3 +13,9 @@
#if !defined(__VAX) && !defined(__GNUC__)
#endif /* VMS_DISABLE_DECC_STRING_BUILTINS_CHECK */
#if defined( VMS_DECC_BUILTIN_CHECK )
define FD_ZERO(__p) memset((__p), 0, sizeof(*(__p)))
#endif /* VMS_DECC_BUILTIN_CHECK */

View File

@ -0,0 +1,14 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rtldef/wait.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( VMS_USE_QUOTED_INCLUDE_CHECK )
# include <sys/resource.h>
#endif /* VMS_USE_QUOTED_INCLUDE_CHECK */