Mail Archives: djgpp/1992/10/19/01:44:23
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 -