Path: utzoo!attcan!uunet!husc6!mailrus!ames!pasteur!ucbvax!decwrl!mejac!gryphon!greg From: greg@gryphon.CTS.COM (Greg Laskin) Newsgroups: comp.unix.xenix Subject: Re: /bin/ld problem (too many segments) Keywords: -SEG compiler flags Message-ID: <4430@gryphon.CTS.COM> Date: 12 Jun 88 11:08:52 GMT References: <304@marob.MASA.COM> <12@n0atp.UUCP> Reply-To: greg@gryphon.CTS.COM (Greg Laskin) Organization: Trailing Edge Technology, Redondo Beach, CA Lines: 21 In article <12@n0atp.UUCP> barry@n0atp.UUCP (Barry S. Berg) writes: > SEG is a compiler kludge created by the fact that 8086/8 80286 etc have > limited (64K) segments for data/stack/code portions. Rather than implement > a simulated 32 bit work space Lattice determined to create lots of little > (64K) segments when they developed their C compiler. Microsoft used the > Lattice compiler, until I believe it was their 3.0 release. Thus they > have carried this kludge with them. > The limit being exceeded is the number of uniquely named segments in the set of object modules presented to the linker. The -SEG switch tells cc to give ld an -s parameter to increase the size of ld's segment table. The -SEG switch does nothing to the compiler at all. They could of used -s but that flag was already used in cc. I don't see why this is a kludge. A similar switch has been available in most of the loaders I've used over the last 20 years. -- Greg Laskin greg@gryphon.CTS.COM !gryphon!greg