[comp.lang.perl] Getting Perl 4.0 to work on an Iris 4D

meb@cs.mu.OZ.AU (Matthew Barry) (04/01/91)

Perl 4.0 has a name clash on the Iris 4D running Iris 3.3.1.  The
offending files are sys/file.h and form.h.  The problems are

#define f_next             f_up.f_unext

in sys/file.h and

struct formcmd {
    struct formcmd *f_next;
    ARG *f_expr;
    STR *f_unparsed;
    line_t f_line;
    char *f_pre;
    short f_presize;
    short f_size;
    short f_decimals;
    char f_type;
    char f_flags;
};

in form.h.  The compiler mananges to compile perl!  However the
resulting excutable fails several of the tests.  I changed

struct formcmd *f_next;

to

struct formcmd *f_nxt;

and then updated cons.c, form.c, and toke.c.

To get all tests to pass (lib/big produces a bad free ingnored):

1. Use the perl malloc (lots of tests fail without this);

2. Set the optimizer flags to -Olimit 3000 if optimizing (this just
   keeps the compiler quiet);

3. Edit config.sh so that d_volatile='undef';

4. Edit config.sh so that d_vfork='undef';

5. Edit config.sh so that d_voidsig='define' (this just keeps the
   compiler quiet).


With the above changes perl 4.0 passed all tests on our Iris 4D
running Irix 3.3.1.  If you are running Irix 3.3 you also need to
undef memcmp.



	Matthew Barry