summaryrefslogtreecommitdiff
path: root/gcc/fixinc/fixincl.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fixinc/fixincl.tpl')
-rw-r--r--gcc/fixinc/fixincl.tpl169
1 files changed, 169 insertions, 0 deletions
diff --git a/gcc/fixinc/fixincl.tpl b/gcc/fixinc/fixincl.tpl
new file mode 100644
index 00000000000..04b67ab5377
--- /dev/null
+++ b/gcc/fixinc/fixincl.tpl
@@ -0,0 +1,169 @@
+[= autogen template -*- Mode: C -*-
+x =]
+/*
+[= _eval "# * " _DNE =]
+ *
+ * Install modified versions of 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 script contains [=_eval fix _hilim 1 +=] fixup scripts.
+ *
+ * See README-fixinc for more information.
+ *
+[=_eval inclhack "# * " _gpl=]
+ *[=
+
+
+_FOR fix =]
+ *
+ * Description [=_eval _index 1 + "#%3d -" _printf=] [=hackname _Cap=] fix
+ */
+tSCC z[=hackname _cap=]Name[] =
+ [=hackname _cap _str=];
+/*
+ * File name selection pattern
+ */[=
+
+ _IF files _exist=]
+tSCC z[=hackname _cap=]List[] =[=
+ _FOR files=]
+ "|" [=files _str=][=
+ /files=] "|";[=
+
+ _ELSE =]
+#define z[=hackname _cap=]List (char*)NULL[=
+ _ENDIF "files _exist" =]
+/*
+ * Machine/OS name selection pattern
+ */[=
+
+ _IF mach _exist=]
+tSCC* apz[=hackname _cap=]Machs[] = {[=
+ _FOR mach =]
+ [=mach _str=],[=
+ /mach=]
+ (const char*)NULL };[=
+
+ _ELSE =]
+#define apz[=hackname _cap=]Machs (const char**)NULL[=
+ _ENDIF "files _exist" =][=
+
+ _IF exesel _exist=]
+
+/*
+ * content selection pattern
+ */[=
+ _FOR exesel =]
+tSCC z[=hackname _cap=]Select[=_eval _index=][] =
+ [=exesel _str=];[=
+ /exesel =][=
+
+ _ELIF select _exist=]
+
+/*
+ * content selection pattern
+ */[=
+ _FOR select =]
+tSCC z[=hackname _cap=]Select[=_eval _index=][] =
+ [=select _str=];[=
+ /select =][=
+ _ENDIF =][=
+
+ _IF bypass _exist=]
+
+/*
+ * content bypass pattern
+ */[=
+ _FOR bypass =]
+tSCC z[=hackname _cap=]Bypass[=_eval _index=][] =
+ [=bypass _str=];[=
+ /bypass =][=
+ _ENDIF =][=
+
+ _IF test _exist=]
+
+/*
+ * content test pattern. A shell will deal with it later.
+ */[=
+ _FOR test =]
+tSCC z[=hackname _cap=]Test[=_eval _index=][] =
+ [=test _str=];[=
+ /test =][=
+ _ENDIF =][=
+
+ _IF exesel _exist select _exist bypass _exist test _exist | | |
+=]
+
+#define [=hackname _up =]_TEST_CT [=
+ _IF exesel _exist =][=
+ _eval test _count bypass _count exesel _count + + =][=
+ _ELSE =][=
+ _eval test _count bypass _count select _count + + =][=
+ _ENDIF =]
+tTestDesc a[=hackname _cap=]Tests[] = {[=
+
+ _IF test _exist =][=
+ _FOR test=]
+ { TT_TEST, z[=hackname _cap=]Test[=_eval _index=], 0 /* unused */ },[=
+ /test =][=
+ _ENDIF =][=
+
+ _IF bypass _exist =][=
+ _FOR bypass=]
+ { TT_NEGREP, z[=hackname _cap=]Bypass[=_eval _index=], (regex_t*)NULL },[=
+ /bypass =][=
+ _ENDIF =][=
+
+ _IF exesel _exist =][=
+ _FOR exesel ,=]
+ { TT_EGREP, z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL }[=
+ /exesel =][=
+
+ _ELIF select _exist =][=
+ _FOR select ,=]
+ { TT_EGREP, z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL }[=
+ /select =][=
+ _ENDIF =] };[=
+ _ELSE =]
+#define [=hackname _up=]_TEST_CT 0
+#define a[=hackname _cap=]Tests (tTestDesc*)NULL[=
+ _ENDIF =]
+
+/*
+ * Fix Command Arguments for [=hackname _cap=]
+ */
+const char* apz[=hackname _cap=]Patch[] = {[=
+ _IF sed _exist =] "sed"[=_FOR sed=],
+ "-e" [=sed _str=][=/sed=][=
+ _ELIF replacement _exist =] "sed",
+ "s@[=select[]=]@[=replacement=]@"[=
+ _ELIF shell _exist =] "sh", "-c",
+ [=shell _str=][=
+ _ELSE =][=_ERROR hackname _get "Error: %s has two fixup specifications"
+ _printf =][=
+ _ENDIF=],
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *[=
+/fix=]
+ *
+ * List of all fixes
+ */
+#define REGEX_COUNT [=_eval fix.select _count
+ fix.bypass _count + =]
+#define FIX_COUNT [=_eval fix _count =]
+tFixDesc fixDescList[ [=_eval fix _count =] ] = {[=
+
+
+_FOR fix ",\n" =]
+ { z[=hackname _cap=]Name, z[=hackname _cap=]List,
+ apz[=hackname _cap=]Machs, (regex_t*)NULL,
+ [=hackname _up=]_TEST_CT, [=
+ _IF not_machine _exist =]FD_MACH_IFNOT[=
+ _ELSE =]FD_MACH_ONLY[=
+ _ENDIF =],
+ a[=hackname _cap=]Tests, apz[=hackname _cap=]Patch }[=
+
+/fix=]
+};