Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!oberon!pollux.usc.edu!papa From: papa@pollux.usc.edu (Marco Papa) Newsgroups: comp.sys.amiga Subject: Re: lattice/MANX bug when compiling large programs Message-ID: <12624@oberon.USC.EDU> Date: 6 Oct 88 18:19:41 GMT References: <4424@louie.udel.EDU> <188@kesmai.COM> Sender: news@oberon.USC.EDU Reply-To: papa@pollux.usc.edu (Marco Papa) Organization: Felsina Software, Los Angeles, CA Lines: 35 In article <188@kesmai.COM> dca@kesmai.COM (David C. Albrecht) writes: I (Marco Papa) say: || I am trying to compile a VERY large C program and so far I haven't been || successful with either MANX 3.60 or Lattice 4.00. || || MANX dies with the "infamous" PC-relative bug mentioned recently on the net. || I haven't ben able to reach MANX Tech Support ANYWHERE. Jim is "working on || 4.0", they say. || || Lattice 4.00 compiles the program OK, but then dies right away in Blink. || Blink returns "error 502: Distance for reloc16 | 32768" with symbol __xcovf or || something like that. I am just using the "default" library lc which should || be able to address the entire memory. || |How modularized is this program? I have noticed that the subroutine |linkages in Lattice are actually BSRs to a series of JMPS (one for |each of the subroutines you access external to your module). If a |single compiland is too large then the BSR to the jump table could |fail so you might run into trouble even though the entire program size |can be quite large. You might be able to fix your problem with some |judicious splitting of the source into separate compilands. Just a thought. The program is *ONE* module, 256K worth of source code. 4 UNIX compilers have no problem with it. I have no more compilation problems with Lattice after using the -r0 -b0 switches, EXCEPT that Lattice generates BAD code (BBS.S with odd address). The point I am trying to make is that neither of the two C compilers on the Amiga come even close to the ones on UNIX. I don't want to start "kludgin the code", just because the compiler is BROKEN. I'll just go back to UNIX. -- Marco Papa 'Doc' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= uucp:...!pollux!papa BIX:papa ARPAnet:pollux!papa@oberon.usc.edu "There's Alpha, Beta, Gamma and Diga!" -- Leo Schwab [quoting Rick Unland] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=