Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!quanta.eng.ohio-state.edu!akela.eng.ohio-state.edu!rob From: rob@akela.eng.ohio-state.edu (Rob Carriere) Newsgroups: comp.lang.c Subject: limits on externals (Was: Seven Original Sins of K&R) Summary: They are NOT necessary. Message-ID: <5893@quanta.eng.ohio-state.edu> Date: 26 Sep 90 20:26:24 GMT References: <12780@sdcc6.ucsd.edu> <1990Sep26.124303.10527@eua.ericsson.se> Sender: news@quanta.eng.ohio-state.edu Reply-To: rob@akela.eng.ohio-state.edu (Rob Carriere) Organization: The Ohio State University Dept of Electrical Engineering Lines: 23 Nntp-Posting-Host: akela In article <1990Sep26.124303.10527@eua.ericsson.se> rv@erix.ericsson.se (Robert Virding) writes: >>{eight character name limit} > >Agreed, but unfortunately C had/has to exist on systems which >themselves limit the name length (in linkers and such). We could I >suppose always say "don't run C on such systems". Hmm... `Replace the linker' seems somewhat more sensible. Yes, I know about systems where the linker cannot be supplanted. In such a case, use the following scheme: C Compiler: C --> `C' object format `C' Linker: `C' object format --> system object format System Linker: system object format --> executable The `C' Linker delivers a single object file with externals `main' plus any system calls[1]. Since |main| < 6 this eliminates the problem. SR [1] that is, it also handles the C libraries, your personal libraries, etc. Everything except some start-up code and the system calls. ---