aboutsummaryrefslogtreecommitdiff
path: root/fixincludes/inclhack.def
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-03-12 14:23:03 +0000
committerTristan Gingold <gingold@adacore.com>2012-03-12 14:23:03 +0000
commitff4273b1cf55eb08cea39696a32828d38c1fcf46 (patch)
treeee4cda9111a43f3915ac816d9575da013601c050 /fixincludes/inclhack.def
parent55568cbc4def3eadc5cfab7a0b6607b3e81eeee0 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@185230 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'fixincludes/inclhack.def')
-rw-r--r--fixincludes/inclhack.def123
1 files changed, 123 insertions, 0 deletions
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 40e7805f163..1a5cd8d234e 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -4611,6 +4611,129 @@ fix = {
};
/*
+ * 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++.
*/