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