Xref: utzoo comp.sources.d:2127 comp.unix.questions:7073 Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!amdcad!light!bvs From: bvs@light.uucp (Bakul Shah) Newsgroups: comp.sources.d,comp.unix.questions Subject: Re: perl compilation problems on a fortune 32:16 Message-ID: <1988May17.192100.17287@light.uucp> Date: 18 May 88 02:20:58 GMT References: <240@sdba.UUCP> <11532@mimsy.UUCP> Reply-To: bvs@light.UUCP (Bakul Shah) Organization: Light Systems, Mountain View, CA Lines: 48 In article <11532@mimsy.UUCP> chris@mimsy.UUCP (Chris Torek) writes: >In article <240@sdba.UUCP> stan@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>