perl compilation problems on a fortune 32:16
Bakul Shah
bvs at light.uucp
Wed May 18 12:20:58 AEST 1988
In article <11532 at mimsy.UUCP> chris at mimsy.UUCP (Chris Torek) writes:
>In article <240 at sdba.UUCP> stan at sdba.UUCP (Stan Brown) writes:
>>... the machine that I am working on is a Fortune 32:16
>>(a 68000) box. The error that I am geting occcurs during the compliation
>>of perl.c and is something like:
>> ... compiler error: no table entry for SASG
...
>> arg[j++] = node[1];
>> ^^^^^^^^^^^^^^^^^^^
>
>This is somewhat curious, as delay() should have deferred the j++.
>But who knows what lurks in the heart of an ancient PCC.
I somehow missed the original article... Anyway, Fortune's compiler was
hacked quite a bit and in the process the compiler people may have deleted
a table entry or two. Atleast that is what I have suspected all along.
>At any rate, there is no way to fix this sort of thing without compiler
>sources, and I imagine those are hard to get (did not Fortune quit
>making 32:16s?). About all you can do is experiment with rephrasing
>the line of code that triggers the compiler bug.
I don't think one can get to Fortune's C compiler sources (and GNU C is
too damn big to fit on a fortune 32:16).
Generally simplifying expressions works on the fortune C compiler.
The following fix worked for me.
diff -r perl/perly.c perl.dist/perly.c
2197,2198c2197
< register ARG * a = &arg[j++];
< *a++ = node[1];
---
> arg[j++] = node[1];
2200c2199
< *a = node[2];
---
> arg[j] = node[2];
BTW, if ``printf("%.20g", 5.0);'' gives you 5.0000000000000000 instead
of just 5, you may need to patch ecvt.o. Without this fix perl is not
happy. Unfortunately I don't remember all the gory details at this
moment and that'll have to wait until I find the original ecvt.o from my
backup floppies (ugh...) and prepare a patch.
Drop me a line if any of you netfolks have any fortune 32:16 related
questions.
-- Bakul Shah <..!{ucbvax,sun}!amdcad!light!bvs>
More information about the Comp.unix.questions
mailing list