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