tmake things work on SunOS - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit a0f1e21ff939612898d63ae2245e47dffc1a8153
 (DIR) parent e637c944febf271252e59742aa108d6e0a527eb7
 (HTM) Author: rsc <devnull@localhost>
       Date:   Tue, 20 Apr 2004 02:03:38 +0000
       
       make things work on SunOS
       
       Diffstat:
         M include/html.h                      |       3 ++-
         M src/cmd/9term/SunOS.c               |       4 ++--
         M src/cmd/acid/expr.c                 |       4 ++--
         M src/cmd/acid/lex.c                  |       2 +-
         M src/cmd/acid/print.c                |       2 +-
         M src/cmd/bzip2/mkfile                |       2 +-
         M src/cmd/db/print.c                  |       2 ++
         M src/cmd/ed.c                        |       5 ++++-
         M src/cmd/gzip/gzip.h                 |       3 ++-
         M src/cmd/gzip/zip.h                  |       3 ++-
         M src/cmd/plot/libplot/mplot.h        |       4 +++-
         M src/lib9/sysfatal.c                 |       2 +-
         M src/lib9p/file.c                    |      14 +++++++++++++-
         M src/libflate/deflate.c              |       2 +-
         M src/libhtml/runetab.c               |       4 ++--
         M src/libmach/machpower.c             |       2 +-
         M src/libmach/symstabs.c              |       2 +-
         M src/libthread/create.c              |       2 +-
         M src/libthread/sched.c               |       1 +
       
       19 files changed, 43 insertions(+), 20 deletions(-)
       ---
 (DIR) diff --git a/include/html.h b/include/html.h
       t@@ -259,7 +259,8 @@ struct Ispacer
        
        // Item state flags and value fields
        enum {
       -        IFbrk =                        0x80000000,        // forced break before this item
       +//        IFbrk =                        0x80000000,        // forced break before this item
       +#define        IFbrk                0x80000000 /* too big for sun */
                IFbrksp =                        0x40000000,        // add 1 line space to break (IFbrk set too)
                IFnobrk =                        0x20000000,        // break not allowed before this item
                IFcleft =                        0x10000000,        // clear left floats (IFbrk set too)
 (DIR) diff --git a/src/cmd/9term/SunOS.c b/src/cmd/9term/SunOS.c
       t@@ -60,14 +60,14 @@ updatewinsize(int row, int col, int dx, int dy)
        static struct termios ttmode;
        
        int
       -israw(int fd)
       +isecho(int fd)
        {
                if(tcgetattr(fd, &ttmode) < 0)
                        fprint(2, "tcgetattr: %r\n");
                if(debug) fprint(2, "israw %c%c\n",
                        ttmode.c_lflag&ICANON ? 'c' : '-',
                        ttmode.c_lflag&ECHO ? 'e' : '-');
       -        return !(ttmode.c_lflag&(ICANON|ECHO));
       +        return (ttmode.c_lflag&(ICANON|ECHO));
        }
        
        int
 (DIR) diff --git a/src/cmd/acid/expr.c b/src/cmd/acid/expr.c
       t@@ -39,7 +39,7 @@ initfsize(void)
                fsize['s'] = 4;
                fsize['u'] = 2;
                fsize['x'] = 2;
       -};
       +}
        
        int
        fmtsize(Value *v)
       t@@ -1021,7 +1021,7 @@ initexpop(void)
                expop[OFMT] = ofmt;
                expop[OEVAL] = oeval;
                expop[OWHAT] = owhat;
       -};
       +}
        
        void
        initexpr(void)
 (DIR) diff --git a/src/cmd/acid/lex.c b/src/cmd/acid/lex.c
       t@@ -52,7 +52,7 @@ initcmap(void)
                cmap['v']=        '\v'+1;
                cmap['\\']=        '\\'+1;
                cmap['"']=        '"'+1;
       -};
       +}
        
        void
        kinit(void)
 (DIR) diff --git a/src/cmd/acid/print.c b/src/cmd/acid/print.c
       t@@ -30,7 +30,7 @@ initbinop(void)
                binop[OCAND]=        "&&";
                binop[OCOR]=        "||";
                binop[OASGN]=        " = ";
       -};
       +}
        
        static char *tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
        char *typenames[] = {
 (DIR) diff --git a/src/cmd/bzip2/mkfile b/src/cmd/bzip2/mkfile
       t@@ -16,7 +16,7 @@ LIB=lib/libbzip2.a
        SHORTLIB=bio 9
        <$PLAN9/src/mkmany
        
       -CFLAGS=$CFLAGS -p -DPLAN9 -Ilib
       +CFLAGS=$CFLAGS -DPLAN9 -Ilib
        
        test:V: $O.bzip2 $O.bunzip2
                ./$O.bzip2 -1  < sample1.ref > sample1.rb2
 (DIR) diff --git a/src/cmd/db/print.c b/src/cmd/db/print.c
       t@@ -6,6 +6,8 @@
        #include "defs.h"
        #include "fns.h"
        
       +#define ptrace dbptrace
       +
        extern        int        infile;
        extern        int        outfile;
        extern        int        maxpos;
 (DIR) diff --git a/src/cmd/ed.c b/src/cmd/ed.c
       t@@ -697,6 +697,8 @@ notifyf(void *a, char *s)
                                noted(NDFLT);
                        rescue();
                }
       +        if(strstr(s, "child"))
       +                noted(NCONT);
                fprint(2, "ed: note: %s\n", s);
                abort();
        }
       t@@ -928,7 +930,8 @@ callunix(void)
                *p = 0;
                pid = fork();
                if(pid == 0) {
       -                execl("/bin/rc", "rc", "-c", buf, 0);
       +                execlp("rc", "rc", "-c", buf, 0);
       +                sysfatal("exec failed: %r");
                        exits("execl failed");
                }
                waiting = 1;
 (DIR) diff --git a/src/cmd/gzip/gzip.h b/src/cmd/gzip/gzip.h
       t@@ -34,7 +34,8 @@ enum
                GZOSACORN        = 13,                        /* Acorn RISCOS */
                GZOSUNK                = 255,
        
       -        GZCRCPOLY        = 0xedb88320UL,
       +#define GZCRCPOLY 0xedb88320
       +/*         GZCRCPOLY        = 0xedb88320UL, */
        
                GZOSINFERNO        = GZOSUNIX,
        };
 (DIR) diff --git a/src/cmd/gzip/zip.h b/src/cmd/gzip/zip.h
       t@@ -16,7 +16,8 @@ enum
                ZTrailInfo        = 1 << 3,        /* uncsize, csize, and crc are in trailer */
                ZCompPatch        = 1 << 5,        /* compression patched data */
        
       -        ZCrcPoly        = 0xedb88320,
       +/*        ZCrcPoly        = 0xedb88320, */
       +#define        ZCrcPoly        0xedb88320
        
                /*
                 * compression method
 (DIR) diff --git a/src/cmd/plot/libplot/mplot.h b/src/cmd/plot/libplot/mplot.h
       t@@ -18,7 +18,9 @@ extern struct penvir {
                double grade;
                int pgap;
                double pslant;
       -        int pmode, foregr, backgr;
       +        int pmode;
       +        ulong foregr;
       +        ulong backgr;
        } *e0, *e1, *esave;
        #define RADIAN 57.3        /* radians per degree */
        struct seg {
 (DIR) diff --git a/src/lib9/sysfatal.c b/src/lib9/sysfatal.c
       t@@ -15,7 +15,7 @@ sysfatal(char *fmt, ...)
                va_end(arg);
        
                __fixargv0();
       -        fprint(2, "%s; %s\n", argv0 ? argv0 : "<prog>", buf);
       +        fprint(2, "%s: %s\n", argv0 ? argv0 : "<prog>", buf);
                exits("fatal");
        }
        
 (DIR) diff --git a/src/lib9p/file.c b/src/lib9p/file.c
       t@@ -254,6 +254,18 @@ walkfile(File *f, char *path)
                free(os);
                return f;
        }
       +
       +static Qid
       +mkqid(vlong path, long vers, int type)
       +{
       +        Qid q;
       +
       +        q.path = path;
       +        q.vers = vers;
       +        q.type = type;
       +        return q;
       +}
       +
                                
        Tree*
        alloctree(char *uid, char *gid, ulong mode, void (*destroy)(File*))
       t@@ -281,7 +293,7 @@ alloctree(char *uid, char *gid, ulong mode, void (*destroy)(File*))
        
                muid = estrdup9p(uid);
        
       -        f->dir.qid = (Qid){0, 0, QTDIR};
       +        f->dir.qid = mkqid(0, 0, QTDIR);
                f->dir.length = 0;
                f->dir.atime = f->dir.mtime = time(0);
                f->dir.mode = DMDIR | mode;
 (DIR) diff --git a/src/libflate/deflate.c b/src/libflate/deflate.c
       t@@ -535,7 +535,7 @@ lzwrite(LZstate *lz, void *buf, int n)
                if(n && lz->w){
                        nw = (*lz->w)(lz->wr, buf, n);
                        if(nw != n){
       -                        lz->w = nil;
       +                        lz->w = 0;
                                lz->wbad = 1;
                        }else
                                lz->totw += n;
 (DIR) diff --git a/src/libhtml/runetab.c b/src/libhtml/runetab.c
       t@@ -57,7 +57,7 @@ cvtstringtab(char **tab, int n)
        
                rtab = emalloc(n*sizeof(rtab[0]));
                for(i=0; i<n; i++)
       -                rtab[i] = toStr(tab[i], strlen(tab[i]), US_Ascii);
       +                rtab[i] = toStr((uchar*)tab[i], strlen(tab[i]), US_Ascii);
                return rtab;
        }
        
       t@@ -69,7 +69,7 @@ cvtstringinttab(AsciiInt *tab, int n)
        
                stab = emalloc(n*sizeof(stab[0]));
                for(i=0; i<n; i++){
       -                stab[i].key = toStr(tab[i].key, strlen(tab[i].key), US_Ascii);
       +                stab[i].key = toStr((uchar*)tab[i].key, strlen(tab[i].key), US_Ascii);
                        stab[i].val = tab[i].val;
                }
                return stab;
 (DIR) diff --git a/src/libmach/machpower.c b/src/libmach/machpower.c
       t@@ -663,7 +663,7 @@ static        char        rlimi[] = "$%k,R%s,$%z,R%a";
        
        #define        OEM        IBF(~0,22,30)
        #define        FP4        IBF(~0,26,30)
       -#define        ALL        (~0)
       +#define ALL        ((ushort)~0)
        /*
        notes:
                10-26: crfD = rD>>2; rD&3 mbz
 (DIR) diff --git a/src/libmach/symstabs.c b/src/libmach/symstabs.c
       t@@ -249,7 +249,7 @@ stabssyminit(Fhdr *fp)
                                /* create new symbol, add it */
                                if(stabcvtsym(&sym, &s, dir, file, i) < 0)
                                        continue;
       -                        if(addsym(fp, &s) < 0)
       +                        if(addsym(fp, &s) == nil)
                                        goto err;
                                break;
                        }
 (DIR) diff --git a/src/libthread/create.c b/src/libthread/create.c
       t@@ -25,7 +25,7 @@ newthread(Proc *p, void (*f)(void *arg), void *arg, uint stacksize, char *name, 
                        sysfatal("bad stacksize %d", stacksize);
                t = _threadmalloc(sizeof(Thread), 1);
                s = _threadmalloc(stacksize, 0);
       -        t->stk = (char*)s;
       +        t->stk = (uchar*)s;
                t->stksize = stacksize;
                _threaddebugmemset(s, 0xFE, stacksize);
                _threadinitstack(t, f, arg);
 (DIR) diff --git a/src/libthread/sched.c b/src/libthread/sched.c
       t@@ -1,3 +1,4 @@
       +#include <u.h>
        #include <signal.h>
        #include <errno.h>
        #include "threadimpl.h"