delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/01/26/07:21:24

Date: Sun, 26 Jan 2003 07:20:40 -0500 (EST)
From: Frank Donahoe <fdonahoe AT wilkes DOT edu>
To: DJGPP List <djgpp AT delorie DOT com>
Subject: unsupported coff header
Message-ID: <Pine.A41.4.44.0301231401170.100742-100000@wilkes1.wilkes.edu>
MIME-Version: 1.0
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





- Raw text -


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