From 24219d389088db7eb34f492e89643a5246ec12a5 Mon Sep 17 00:00:00 2001
From: Tristan Gingold <gingold@adacore.com>
Date: Mon, 12 Mar 2012 14:23:03 +0000
Subject: [PATCH] 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
---
 fixincludes/ChangeLog                  |  12 +
 fixincludes/fixincl.x                  | 318 ++++++++++++++++++++++++-
 fixincludes/inclhack.def               | 123 ++++++++++
 fixincludes/tests/base/rtldef/if.h     |  18 ++
 fixincludes/tests/base/rtldef/resolv.h |  16 ++
 fixincludes/tests/base/rtldef/setjmp.h |  14 ++
 fixincludes/tests/base/rtldef/signal.h |  16 ++
 fixincludes/tests/base/rtldef/stdio.h  |  16 ++
 fixincludes/tests/base/rtldef/string.h |   6 +
 fixincludes/tests/base/rtldef/wait.h   |  14 ++
 10 files changed, 548 insertions(+), 5 deletions(-)
 create mode 100644 fixincludes/tests/base/rtldef/if.h
 create mode 100644 fixincludes/tests/base/rtldef/resolv.h
 create mode 100644 fixincludes/tests/base/rtldef/setjmp.h
 create mode 100644 fixincludes/tests/base/rtldef/signal.h
 create mode 100644 fixincludes/tests/base/rtldef/stdio.h
 create mode 100644 fixincludes/tests/base/rtldef/wait.h

diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index ba0c1e0e5fef..d37b5efa1002 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -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>
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index 517fba9df061..eca464678e43 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  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,
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 40e7805f1632..1a5cd8d234e4 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -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++.
diff --git a/fixincludes/tests/base/rtldef/if.h b/fixincludes/tests/base/rtldef/if.h
new file mode 100644
index 000000000000..836ff2733d14
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/if.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/resolv.h b/fixincludes/tests/base/rtldef/resolv.h
new file mode 100644
index 000000000000..0b5b2483ca1e
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/resolv.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/setjmp.h b/fixincludes/tests/base/rtldef/setjmp.h
new file mode 100644
index 000000000000..5414efc54e90
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/setjmp.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/signal.h b/fixincludes/tests/base/rtldef/signal.h
new file mode 100644
index 000000000000..3b5a2b8639d7
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/signal.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/stdio.h b/fixincludes/tests/base/rtldef/stdio.h
new file mode 100644
index 000000000000..4835d0fe0d43
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/stdio.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/string.h b/fixincludes/tests/base/rtldef/string.h
index 1ac9b2add924..6249b0c6732e 100644
--- a/fixincludes/tests/base/rtldef/string.h
+++ b/fixincludes/tests/base/rtldef/string.h
@@ -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 */
diff --git a/fixincludes/tests/base/rtldef/wait.h b/fixincludes/tests/base/rtldef/wait.h
new file mode 100644
index 000000000000..0587834f13a2
--- /dev/null
+++ b/fixincludes/tests/base/rtldef/wait.h
@@ -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 */
-- 
GitLab