[comp.sys.ibm.pc] Bug in EXEPACK

kneller@socrates.ucsf.edu.UUCP (06/05/87)

In article <4064@teddy.UUCP> jpn@teddy.UUCP (John P. Nelson) writes:
>EXEPACK will PACK any .exe file, but the result may not work properly.
>EXEPACK may append a run-time initialization module, which allows EXEPACK
>to remove any large initialized buffers from the .exe image.  This appendage
>apparently clobbers some of the registers that the "exec" call sets up,
>but which MS-C does not need.  (Sorry, I don't have details).

I don't think the problems when using EXEPACK and exec() has anything to
do with registers.  In case you've never encountered this problem,
EXEPACKing a program that also has an exec() can cause the program to
"go into left field" when the exec() is called.

I believe the problem is a bug in EXEPACK which reduces the maximum
number of paragraphs (of memory) the program uses to a value less than
the minimum number of paragraphs.  This is wrong.

You can use "exemod foo.exe /max 1" to restore the maximum number to be at
least as large as the minimum.  Also you can use "exemod foo.exe" to
examine the number of paragraphs being used.
-----
	Don Kneller
UUCP:	...ucbvax!ucsfcgl!kneller
ARPA:	kneller@cgl.ucsf.edu
BITNET:	kneller@ucsfcgl.BITNET

neff@hpvcla.UUCP (06/08/87)

The version of EXEPACK that you use does make a difference. The version
I got with Microsoft's latest Pascal compiler did not work
on a large program compiled with their own compiler. I called
Microsoft support, they sent me the latest version for free, and it
did pack the program correctly.  In other words, some of the EXEPACK
failures people have been seeing could be due to EXEPACK bugs. 

Unfortunately I don't have access to the EXEPACK disk right now so
I can't tell you which version I have been using.

Dave Neff
ihnp4!hpfcla!hpvcla!neff