Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!apple!uokmax!servalan!rmtodd From: rmtodd@servalan.uucp (Richard Todd) Newsgroups: comp.unix.aux Subject: Re: Installing gcc on A/UX 1.1 Summary: Apple's C compiler has severe dain bramage. Keywords: gcc Message-ID: <1989Dec4.062116.3446@servalan.uucp> Date: 4 Dec 89 06:21:16 GMT References: <3961@helios.TAMU.EDU> Reply-To: rmtodd@servalan.UUCP (Richard Todd) Organization: Ministry of SIlly Walks Lines: 42 In article <3961@helios.TAMU.EDU> jak9213@helios.TAMU.EDU (John Kane) writes: >The subject about says it. > >I have A/UX 1.1, the gcc files from apple.com > >Following the instructions in the README, I get to the point where a do >a new "make". everything works for a while, but I then get the message >"too many defines". The problem is that the source for gcc is too complex for Apple's C compiler to handle. Believe it or not, the stock AT&T-derived CPP allocates space for handling defines from a *fixed size buffer* (32K, I believe), and if your source code has more #defines than that, tough. Rumour has it that in SVR4 AT&T has finally learned about malloc(3) and fixed this piece of braindamage, but that's not much help to us now. So how do you compile gcc? Well, you need a compiler and C preprocessor that allocate space for #defines and other stuff dynamically instead of using fixed-size buffers. I.e., you need GCC binaries. Fortunately, there's a set of gcc binaries already made up and sitting there on apple.com; I forget the exact file name but it's in the same directory with gcc's source, so it should be easy to find. Then simply hack the makefiles etc. to use gcc instead of cc and everything should be just fine. Of course, there's no real reason to compile gcc when you've got the binaries available, unless you want to hack on it; if all you're interested in is being able to use the superior optimizations, ANSIness, etc. of gcc, you can just install the binaries and go home for the day. *FLAME ON* I'm still shocked that the standard compiler is braindead in this fashion. Compilers should not run out of table space for *anything* except when you've actually used up all the available memory space in the system. Great Ghu, Ron Cain's Small-C managed to get this right back in 1980; why couldn't the mighty AT&T Unix Systems Group? Malloc just ain't that hard to use, guys! *FLAME OFF* (Final note for the curious: It ain't just the C Preprocessor that runs into buffer-size limits with the GCC source; even if you get around that, various expressions in the GCC source cause the C compiler proper to fill up *its* fixed-size tables. Sigh.) -- Richard Todd rmtodd@uokmax.ecn.uoknor.edu rmtodd@chinet.chi.il.us rmtodd@servalan.uucp Motorola Skates On Intel's Head!