six-character extern id limit

Robert Andersson ra at isncr.is.se
Tue Sep 20 02:55:58 AEST 1988


In article <4003 at bsu-cs.UUCP>, dhesi at 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 at isncr.is.se 
UUCP:             ...!{uunet,mcvax,enea}!isncr.is.se!ra
UUCP in Norway:   ...!ndosl!ifi!naggum!isncr!ra



More information about the Comp.lang.c mailing list