- * parameters not const on Ultrix V4.3.
- */
-fix = {
- hackname = ultrix_const3;
- files = stdio.h;
- select = 'fdopen\( .*, char \*';
-
- c_fix = format;
- c_fix_arg = "%1 const %3 *__";
- c_fix_arg = "([ \t*](fdopen)\\(.*)"
- "[ \t]+(char|void) \\*__";
-
- test_text =
- "extern FILE * fdopen( int __filedes, char *__type );\n";
-};
-
-
-/*
- * Ultrix V4.[35] puts the declaration of uname before the definition
- * of struct utsname, so the prototype (added by fixproto) causes havoc.
- */
-fix = {
- hackname = ultrix_fix_fixproto;
- files = sys/utsname.h;
- select = ULTRIX;
-
- c_fix = format;
- c_fix_arg = "struct utsname;\n%0";
- c_fix_arg = "^[ \t]*extern[ \t]*int[ \t]*uname\\(\\);";
-
- test_text =
- "/* ULTRIX's uname */\nextern\tint\tuname();";
-};
-
-
-/*
- * Check for bad #ifdef line (in Ultrix 4.1)
- */
-fix = {
- hackname = ultrix_ifdef;
- select = "^#ifdef KERNEL[ \t]+&&";
- files = sys/file.h;
-
- c_fix = format;
- c_fix_arg = "#if defined(KERNEL) &&";
-
- test_text =
- "#ifdef KERNEL\t&& defined( mumbojumbo )\nint oops;\n#endif";
-};
-
-
-/*
- * Add once-only latch to Ultrix V4.3 locale.h.
- */
-fix = {
- hackname = ultrix_locale;
- files = locale.h;
- select = "@\\(#\\)locale\\.h.*6\\.1.*\\(ULTRIX\\)";
- c_fix = wrap;
- test_text =
- "@(#)locale.h 6.1 (ULTRIX)\n";
-};
-
-
-/*
- * Strip "|| CC$gfloat" from Ultrix math headers.
- */
-fix = {
- hackname = ultrix_math_ifdef;
- files = sys/limits.h;
- files = float.h;
- files = math.h;
- select = "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
- c_fix = format;
- c_fix_arg = "%1";
-
- test_text = '#if defined(__GFLOAT) || CC\$gfloat';
-};
-
-
-/*
- * Avoid nested comments on Ultrix 4.3.
- */
-fix = {
- hackname = ultrix_nested_ioctl;
- files = sys/ioctl.h;
- select = "^/\\* #define SIOCSCREEN";
- sed = "/^\\/\\* #define SIOCSCREEN/s@/\\* screend@*//* screend@";
- test_text =
- "/* #define SIOCSCREENON _IOWR('i', 49, int)"
- "/* screend, net/gw_screen.h */\n";
-};
-
-
-fix = {
- hackname = ultrix_nested_svc;
- files = rpc/svc.h;
- select = "^ \\*[ \t]*int protocol; */\\*";
- sed = "s@^\\( \\*\tint protocol; \\)/\\*@\\1*/ /*@";
- test_text =
- " *\tint protocol; /* like TCP or UDP\n";
-};
-
-
-/*
- * Add missing prototype for lstat and define for S_ISLNK
- * in Ultrix V4.3 sys/stat.h.
- */
-fix = {
- hackname = ultrix_stat;
- files = sys/stat.h;
- select = "@\\(#\\)stat\\.h.*6\\.1.*\\(ULTRIX\\)";
- sed = "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n"
- "\\\n"
- "/* macro to test for symbolic link */\\\n"
- "#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n"
- "\n";
- sed = "/^[ \t]*fstat(),$/a\\\n"
- "\tlstat(),\n";
- test_text =
- "@(#)stat.h 6.1 (ULTRIX)\n"
- "#define S_IFPORT S_IFIFO\n"
- "\tfstat(),\n/* THE INSERTION LINE FAILS ON BSD SYSTEMS */";
-};
-
-
-/*
- * Check for superfluous `static' (in Ultrix 4.2)
- * On Ultrix 4.3, includes of other files (r3_cpu.h,r4_cpu.h) is broken.
- */
-fix = {
- hackname = ultrix_static;
- files = machine/cpu.h;
- select = '#include "r[34]_cpu';
- sed = "s/^static struct tlb_pid_state/struct tlb_pid_state/";
- sed = 's/^#include "r3_cpu\.h"$/#include <machine\/r3_cpu\.h>/';
- sed = 's/^#include "r4_cpu\.h"$/#include <machine\/r4_cpu\.h>/';
- test_text =
- "static struct tlb_pid_state {\n"
- "#include \"r3_cpu.h\"\n";
-};
-
-
-/*
- * Add missing declarations to Ultrix V4.3 stdlib.h.
- */
-fix = {
- hackname = ultrix_stdlib;
- files = stdlib.h;
- select = "@\\(#\\)stdlib\\.h.*6\\.1.*\\(ULTRIX\\)";
-
- sed = "/^char.*getenv( const char .* );.*$/a\\\n"
- "int\t\tsetenv( const char *__name, const char *__val, int __ovrwrt );\\\n"
- "void\t\tunsetenv( const char *__name );\\\n"
- "int\t\tputenv( char *__s );\n";
-
- sed = "/^char.*getenv();.*$/a\\\n"
- "int\tsetenv();\\\n"
- "void\tunsetenv();\\\n"
- "int\tputenv();\n";
-
- test_text =
- "@(#)stdlib.h 6.1 (ULTRIX)\n"
- "char * getenv( const char *__name );\n"
- "char *getenv();\n";
-};
-
-
-/*
- * Add once-only latch to Ultrix V4.3 strings.h.
- */
-fix = {
- hackname = ultrix_strings;
- files = strings.h;
- select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
- c_fix = wrap;
- test_text =
- "@(#)strings.h 6.1 (ULTRIX)\n";
-};
-
-
-/*
- * Add missing declarations to Ultrix V4.3 strings.h.
- */
-fix = {
- hackname = ultrix_strings2;
- files = strings.h;
- select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
-
- sed = "/^.*strncmp( const .* );.*/a\\\n"
- "\\\n"
- "extern int\\\n"
- "\tstrcasecmp( const char *__s1, const char *__s2),\\\n"
- "\tstrncasecmp( const char *__s1, const char *__s2, size_t __n );\n";
-
- sed = "/^.*strncmp();.*/a\\\n"
- "extern int\\\n"
- "\tstrcasecmp(),\\\n"
- "\tstrncasecmp();\n";
-
- test_text =
- "@(#)strings.h 6.1 (ULTRIX)\n"
- "\tstrncmp( const char *__s1, const char *__s2, size_t __n );\n"
- "\tstrncmp();\n";
-};
-
-
-/*
- * Add missing declarations to Ultrix V4.3 sys/time.h.
- */
-fix = {
- hackname = ultrix_sys_time;
- files = sys/time.h;
- select = "@\\(#\\)time\\.h.*6\\.1.*\\(ULTRIX\\)";
-
- sed = "/^extern.*time_t.*time( time_t .* );.*$/a\\\n"
- "\\\n"
- "extern int adjtime(struct timeval *, struct timeval *);\\\n"
- "extern int getitimer(int, struct itimerval *);\\\n"
- "extern int setitimer(int, struct itimerval *, struct itimerval *);\\\n"
- "extern int gettimeofday(struct timeval *, struct timezone *);\\\n"
- "extern int settimeofday(struct timeval *, struct timezone *);\\\n"
- "extern void profil(const void *, size_t, size_t, unsigned int);\\\n"
- "extern int stime(const time_t *);\\\n"
- "extern int utimes(const char *, const struct timeval[2]);\\\n"
- "extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);\n";
-
- sed = "/^extern.*double.*difftime();.*$/a\\\n"
- "extern\tint adjtime();\\\n"
- "extern\tint getitimer();\\\n"
- "extern\tint setitimer();\\\n"
- "extern\tint gettimeofday();\\\n"
- "extern\tint settimeofday();\\\n"
- "extern\tvoid profil();\\\n"
- "extern\tint stime();\\\n"
- "extern\tint utimes();\\\n"
- "extern\tint select();\n";
-
- test_text =
- "@(#)time.h 6.1 (ULTRIX)\n"
- "extern time_t time( time_t *__tloc );\n"
- "extern double difftime();\n";
-};
-
-
-/*
- * Add missing declarations to Ultrix V4.3 unistd.h.
- */
-fix = {
- hackname = ultrix_unistd;
- files = unistd.h;
- select = "@\\(#\\)unistd\\.h.*6\\.1.*\\(ULTRIX\\)";
-
- sed = "/^[ \t]*getgroups(),.*$/a\\\n"
- "\tgetpagesize(),\n";
-
- sed = "/^[ \t]*fork(),.*$/a\\\n"
- "\tvfork(),\n";
-
- test_text =
- "@(#)unistd.h 6.1 (ULTRIX)\n"
- "\tgetgroups(),\n"
- "\tfork(),\n";
-};
-
-
-/*
- * On Cray Unicos/Mk some standard headers use the C99 keyword "restrict"
- * which must be replaced by __restrict__ for GCC.
- */
-fix = {
- hackname = unicosmk_restrict;
- files = stdio.h;
- files = stdlib.h;
- files = wchar.h;
- mach = "*-*-unicosmk*";
- select = "(\\*[ \t]*)restrict([ \t]+)";
-
- c_fix = format;
- c_fix_arg = "%1__restrict__%2";
-
- test_text = "void f (char * restrict x);";
-};
-
-/*
- * If arpa/inet.h prototypes are incompatible with the ones we just
- * installed in <sys/byteorder.h>, just remove the protos.
- * Because of this close association, this patch must be applied only
- * on those systems where the replacement byteorder header is installed.
- */
-fix = {
- hackname = uw7_byteorder_fix;
- files = arpa/inet.h;
- select = "in_port_t";
- test = "-f sys/byteorder.h";
-#ifndef SVR5
- mach = "*-*-sysv4*";
- mach = "i?86-*-sysv5*";
- mach = "i?86-*-udk*";
- mach = "i?86-*-solaris2.[0-4]";
- mach = "powerpcle-*-solaris2.[0-4]";
- mach = "sparc-*-solaris2.[0-4]";
-#endif /* SVR5 */
-
- c_fix = format;
- c_fix_arg = "";
- c_fix_arg = "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;";
-
- test_text = "extern in_port_t\thtons __P((in_port_t));\n"
- "extern in_port_t\tntohs __P((in_port_t));"
- "`[ ! -d $DESTDIR/sys ] && mkdir $DESTDIR/sys\n"
- "echo '/* DUMMY */' >> sys/byteorder.h`";
-};
-
-
-/*