On Mon, May 14, 2001 at 10:31:48AM -0400, John Kodis wrote:
> On Sun, May 13, 2001 at 09:03:30PM -0400, Horst von Brand wrote:
> 
> > The old C compiler/old Unix linker guaranteed 6 chars in an external symbol
> > name only, and C functions got an underscore prepended: _creat. I guess
> > this is the reason for this wart. As to why 6 chars only, I'd guess some
> > data structure in the linker was laid out that way. Machines had a few
> > dozen Kbs of RAM then, space was precious.
> 
> I recall that RSX-11 and a few other series of early DEC operating
> systems stored linker symbols in a "RAD50" encoding scheme which
> allowed 6 chararacters to be crammed into a 32-bit "long word".  I
> suspect that this is where the limitation originated.

More trivia.  Rad50 actually allows 5 characters per 32-bit word.  The 50 is
actually 050 in octal (ie, 40 decimal), and allows you to have all 26 english
letters, 10 digits, a null, and 3 characters.  At this stage, I don't remember
what the precise encoding is, or what the additional 3 characters were (I
suspect different systems used different characters).  One of the first systems
I worked on professionally (Data General RDOS) used RAD50 in their object file
format.

-- 
Michael Meissner, Red Hat, Inc.  (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:     [EMAIL PROTECTED]           phone: +1 978-486-9304
Non-work: [EMAIL PROTECTED]   fax:   +1 978-692-4482
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to