[comp.sys.ibm.pc] Breaking Turbo C's 64K Global variables barrier

mcclure@tut.cis.ohio-state.edu (James E. McClure) (11/14/88)

I have the been given the task of converting a large program written
for Microsoft C 5.1 to Turbo C 2.0.  My problem is that I keep getting
a link error : DGROUP: group/segment exceeds 64K.  According to Borlands
documentation, you are only allowed 64K of global data.

Does anyone know how I can get around this without using the HUGE model
(which does link but the program crashes).

Thanks for your help.
-- 
James E. McClure                                          (614) 424-5764
Battelle Memorial Institute               mcclure@tut.cis.ohio-state.edu
Columbus, Ohio                                    mcclurej@battelle.arpa
                                  ...!att!tut.cis.ohio-state.edu!mcclure

nelson@sun.soe.clarkson.edu (Russ Nelson) (11/14/88)

I haven't tried it, but you *might* be able to name your data segments
differently in the different models.  Try using -z... and see how it
works.  You'll have to use large model.
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
To surrender is to remain in the hands of barbarians for the rest of my life.
To fight is to leave my bones exposed in the desert waste.

klotz@ihlpg.ATT.COM (Dave Klotzbach) (11/15/88)

> My problem is that I keep getting
> a link error : DGROUP: group/segment exceeds 64K.  According to Borlands
> documentation, you are only allowed 64K of global data.

I do not have my documentation here at work, but I think this limitation
applies to a single sourcefile. That is, no one source file may have more
than 64k of data. In Huge model, each sourcefile creates a separate data,
text and bss section, so that file a.c has an a_text, a_data and a_bss section.

-- 

					Dave Klotzbach
					ihnp4!ihlpl!klotz
					IE 2F-518  (312) 416-7437