ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/10/19/01:44:23

From: mcastle AT cs DOT umr DOT edu
Subject: compiling large files
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Date: Mon, 19 Oct 92 0:16:50 CDT

I've been working on compiling the latest version of the graphics package
PBMPlus with djgpp.  Everything went fine except for compiling one of the
modules dealing with the tiff libraries. 

Evidently, the fax3 method of compression uses a state-machine approach.
While the .c file was ~28k, the cpp output .i file was ~647k and the 
assembler source file was ~1516k!

I kept having problems compiling.  cc1 kept choking with Exception 6 (illegal
op code?), but when I used debug32 instead of go32, it choked with 
Exception 14 (page fault).  I then stripped out everything except vanilla 
dos and stacker.  go32 then started having exception 14, but I managed to get
a compile done with debug32.

During all this, I would get a paging file ~8000k, and I have 8 megs on my
machine, so cc1 needed something on the order of 16megs to do the compilation.
I haven't tried to recompile yet using go32, because it took 45 minutes to 
do the last one.

I'm thinking my copy of go32.exe is corrupted, so I'm going to get a new copy
and see if that works any better.

Anyway, what I want to know is:  for a .i file of ~647k (most of which is
array declarations, ie more data than code), is 16megs of memory typical 
for a compilation?  If I was doing any optimizations, I wouldn't be surprised,
but gee... that's a pretty hefty requirement.  I'm just glad I have a pretty
speedy harddrive.

Also, when building under debug32, I noticed that the paging file started 
building when there was 20k of real memory free (actually, it may have been
60k, but it was so long ago, I can't remember).  As the paging file increased
in size, I noticed the real memory kept decreasing in size until it got down
to about 8k.  I assume this was for building the page tables.  I'm wondering
if before I stripped out my 3meg ramdrive and 1meg disk cache, and trying to
compile with only 4megs of free memory, if it was running out of real memory
building the virtual memory page tables, thus causing the page fault.

Btw, I had 12megs free on the drive I was using for the paging files, and 
running out of disk space was not the problem.

I'm curious if anyone else has had any similiar problems?  I have made 
extensive use of go32 virtual memory capabilities many times (mostly in 
using pbmplus on large files when I only had 4megs of ram), and not had 
any problems, but this is the first time I've created this large of a 
swap file.

Now to get a fresh copy of go32.exe....
mrc

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019