Date: Sun, 26 Jan 2003 07:20:40 -0500 (EST) From: Frank Donahoe To: DJGPP List Subject: unsupported coff header Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com I had downloaded gmp412s and following the instructions in DJGPP/readme.djg checked to be sure my supporting files were current. Except for fil41b, where the release of 10/11/02 (the one from which only "ls.exe" would not pack) was installed, the latest versions were in place. The package was configured for the pentium processor and the libraries built without trouble. All tests completed successfully, the source object files were stripped, libraries rebuilt and installed. Everything worked as expected. Then I moved to the demos subdirectory. bash-2.04$ make allprogs > demo.log 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -g -O2 -fomit-frame-pointer \ -mcpu=pentium -march=pentium -c `test -f factorize.c || \ echo './'`factorize.c /dev/env/DJDIR/bin/sh.exe ../libtool --mode=link gcc -g -O2 \ -fomit-frame-pointer -mcpu=pentium -march=pentium -o factorize.exe \ factorize.o ../libgmp.la mkdir .libs gcc -g -O2 -fomit-frame-pointer -mcpu=pentium -march=pentium -o \ factorize.exe factorize.o /dev/env/DJDIR/lib/libgmp.a gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -g -O2 -fomit-frame-pointer \ -mcpu=pentium -march=pentium -c `test -f isprime.c || echo './'`isprime.c /dev/env/DJDIR/bin/sh.exe ../libtool --mode=link gcc -g -O2 \ -fomit-frame-pointer -mcpu=pentium -march=pentium -o isprime.exe \ isprime.o ../libgmp.la gcc -g -O2 -fomit-frame-pointer -mcpu=pentium -march=pentium -o \ isprime.exe isprime.o /dev/env/DJDIR/lib/libgmp.a ....skipping to end of successful build. bash-2.04$ upx --best *.exe calc/*.exe expr/*.exe >> demo.log 2>&1 Ultimate Packer for eXecutables Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 UPX 1.24d Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002 File size Ratio Format Name -------------------- ------ ----------- ---------- 178142 -> 64552 36.23% djgpp2/coff factorize.exe upx: isprime.exe: CantPackException: unsupported coff header upx: pexpr.exe: CantPackException: unsupported coff header upx: primes.exe: CantPackException: unsupported coff header 148519 -> 53220 35.83% djgpp2/coff qcn.exe upx: calc/calc.exe: CantPackException: unsupported coff header upx: expr/run-expr.exe: CantPackException: unsupported coff header upx: expr/t-expr.exe: CantPackException: unsupported coff header ____________________ ______ ___________ 326661 -> 117772 36.05% [ 2 files ] Packed 8 files: 2 ok, 6 errors. So if djgpp 204 is not heading in the direction of a new coff header, the new tools seem to be taking us there. Incidentally, I checked "factorize" which worked before packing, while packed, and after unpacking. On further tests, the executables of InfoZIP's zip and unzip built with these tools could all be packed by UPX 1.24d while bzip2.exe and bzip2recover.exe from bzip2-1.02 were with unsupported coff headers. The zips build no library while bzip2 does. Is that a clue? The behavior of gmp seems capricious. In the words of Walt Kelly's cartoon character Albert, "We have met the enemy and he is us." Regards, Frank