Path: utzoo!attcan!uunet!mcvax!enea!naggum!isncr!ra From: ra@isncr.is.se (Robert Andersson) Newsgroups: comp.lang.c Subject: Re: six-character extern id limit Message-ID: <169@isncr.is.se> Date: 19 Sep 88 16:55:58 GMT References: <5162@hoptoad.uucp> <225800069@uxe.cso.uiuc.edu> <8507@smoke.ARPA> <4003@bsu-cs.UUCP> Organization: International Systems, Oslo, Norway Lines: 33 In article <4003@bsu-cs.UUCP>, dhesi@bsu-cs.UUCP (Rahul Dhesi) writes: > > But although I have been > following this newsgroup for some time, I don't recall any specific > cases being described of linkers that can't handle more than > 6-character externals and that will of necessity be used to link C > code. Are there more than just a few? (Remember, we're talking about > a 6-character limit, not 7 or 8, which are more common.) > -- The linker on the Honeywell Bull DPS6 minicomputers is limited to 6-character uppercase-only externals, and the C-compiler has to live with this severe limitation. In order to make life a bit easier (though sometimes it just makes it worse, see below), the C-compiler does the following with externals. Flames to Honeywell Bull, not to me :-) 1. All characters are changed to uppercase. 2. All underscores are removed. 3. If more than six characters remain, vowels are eliminated from right to left until either; (1) there are only siz characters left, or (2) there are no more vowels. 4. If there is still more than six characters left, the excess is truncated right to left. I remember I had a program with a function called strcomp(). By rule 3 above it got reduced to strcmp(), and the linker didn't complain that this symbol was defined both in my program and in the C-library. All calls to strcmp() thus ended up calling my strcomp(), not exactly what I wanted. -- Robert Andersson, International Systems, Oslo, Norway Internet: ra@isncr.is.se UUCP: ...!{uunet,mcvax,enea}!isncr.is.se!ra UUCP in Norway: ...!ndosl!ifi!naggum!isncr!ra