1
0
mirror of https://github.com/upx/upx.git synced 2025-08-11 22:52:30 +08:00

Small updates.

committer: mfx <mfx> 1066732696 +0000
This commit is contained in:
Markus F.X.J. Oberhumer
2003-10-21 10:38:16 +00:00
parent bcb5e7d852
commit a55b3480ef
6 changed files with 62 additions and 47 deletions

1
NEWS
View File

@ -11,6 +11,7 @@ Changes in 1.91 beta (XX Sep 2003):
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
* djgpp2/coff: added support for recent binutils versions
* watcom/le: don't crash on files without relocations
* Option `--brute' now implies `--crp-ms=999999'.
Changes in 1.90 beta (11 Nov 2002):
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING

View File

@ -20,7 +20,8 @@ B<upx> S<[ I<command> ]> S<[ I<options> ]> I<filename>...
B<UPX> is a portable, extendable, high-performance executable packer for
several different executable formats. It achieves an excellent compression
ratio and offers I<*very*> fast decompression. Your executables suffer
no memory overhead or other drawbacks for most of the formats supported.
no memory overhead or other drawbacks for most of the formats supported,
because of in-place decompression.
While you may use B<UPX> freely for both non-commercial and commercial
executables (for details see the file LICENSE), we would highly
@ -36,11 +37,6 @@ is considered not politically correct ;-) ]
B<UPX> comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
Having said that, we think that B<UPX> is quite stable now. Indeed we
have compressed lots of files without any problems. Also, the
current version has undergone several months of beta testing -
actually it's more than 4 years since our first public beta back in 1998.
This is the first production quality release, and we plan that future 1.xx
releases will be backward compatible with this version.
@ -55,7 +51,8 @@ B<UPX> is a versatile executable packer with the following features:
- excellent compression ratio: compresses better than zip/gzip,
use UPX to decrease the size of your distribution !
- very fast decompression: about 10 MB/sec even on my old Pentium 133
- very fast decompression: about 10 MB/sec on an ancient Pentium 133,
about 200 MB/sec on an Athlon XP 2000+.
- no memory overhead for your compressed executables for most of the
supported formats
@ -174,7 +171,7 @@ Quick start for achieving the best compression ratio:
=over 4
Try B<upx --brute --crp-ms=999999 myfile.exe>.
Try B<upx --brute myfile.exe>.
=back
@ -190,9 +187,6 @@ Use the compression level B<--best>.
Try one or both of the options B<--all-methods> and B<--all-filters>.
Info: the option B<--brute> is an abbrevation for all the options
B<S<--best> S<--all-methods> S<--all-filters>>.
=item *
Try the option B<--crp-ms=NUMBER>. This uses more memory during compression
@ -203,6 +197,11 @@ The default value is 10000 (ten thousand).
=item *
Info: the option B<--brute> is an abbrevation for the options
B<S<--best> S<--all-methods> S<--all-filters> S<--crp-ms=999999>>.
=item *
Try if B<--overlay=strip> works.
=item *
@ -215,9 +214,15 @@ For win32/pe programs there's B<--strip-relocs=0>. See notes below.
=head1 OVERLAY HANDLING OPTIONS
Info: An "overlay" means auxillary data atached after the logical end of
an executable, and it often contains application specific data
(this is a common practice to avoid an extra data file, though
it would be better to use resource sections).
B<UPX> handles overlays like many other executable packers do: it simply
copies the overlay after the compressed image. This works with some
files, but doesn't work with others.
files, but doesn't work with others, depending on how an application
actually accesses this overlayed data.
Since version 0.90 UPX defaults to B<--overlay=copy> for
all executable formats.
@ -249,7 +254,8 @@ environment variable because of a COMMAND.COM limitation.
Not all of the options are valid in the environment variable -
B<UPX> will tell you.
You can use the B<--no-env> option to turn this support off.
You can explicitly use the B<--no-env> option to ignore the
environment variable.
@ -859,7 +865,7 @@ Extra options available for this executable format:
address greater or equal to 0x400000. Usually the
compressed files becomes smaller, but some files
may become larger. Note that the resulting file will
not work under Win32s.
not work under Windows 3.x (Win32s).
UPX never strips relocations from a DLL
regardless of this option.

View File

@ -3,20 +3,23 @@
#
# usage:
# `make target=linux' # linux
# `make target=djggp2' # dos32 - djggp2
# `make target=cygwin' # win32 - cygwin 1.3.x
# `make target=mingw32' # win32 - mingw32
# `make target=no-cygwin' # win32 - mingw32 as included in cygwin
# `make target=rsxnt' # win32 - rsxnt
# `make target=bc' # win32 - Borland C++
# `make target=dm' # win32 - Digital Mars C++
# `make target=ic' # win32 - Intel C++
# `make target=vc' # win32 - Visual C++
# `make target=wc' # win32 - Watcom C++
# `make target=dos32-djggp2' # dos32 - djggp2
# `make target=win32-cygwin' # win32 - cygwin
# `make target=win32-mingw32' # win32 - mingw32
# `make target=win32-no-cygwin' # win32 - mingw32 as included in cygwin
# `make target=win32-rsxnt' # win32 - rsxnt
# `make target=win32-bc' # win32 - Borland C++
# `make target=win32-dm' # win32 - Digital Mars C++
# `make target=win32-ic' # win32 - Intel C++
# `make target=win32-vc' # win32 - Visual C++
# `make target=win32-wc' # win32 - Watcom C++
# `make target=cross-amd64-linux' # x86_64-linux cross compiler
# `make target=cross-mingw32' # i586-mingw32msvc cross compiler
# `make target=cross-mint' # m68k-atari-mint cross compiler
# `make target=gcc' # generic gcc
#
# you can also set the `UPX_MAKE_TARGET' environment variable.
#
# configuration section

View File

@ -1,5 +1,5 @@
# /***********************************************************************
# // setup
# // perpare setup
# ************************************************************************/
SHELL = /bin/sh
@ -217,7 +217,7 @@ ifeq ($(target),cross-amd64-linux)
include $(srcdir)/Makedefs.gcc
CC = x86_64-linux-gcc
CXX = x86_64-linux-g++
##LDLIBS += -lmcheck
LDLIBS += -lmcheck
endif # cross-amd64-linux
ifeq ($(target),cross-m68k-linux)
@ -270,7 +270,7 @@ endif
### dos32 - djgpp2 / emx
###
ifeq ($(target),djgpp2)
ifeq ($(target),dos32-djgpp2)
include $(srcdir)/Makedefs.gcc
e = .exe
CXX = gxx
@ -284,7 +284,7 @@ endif
endif
endif
ifeq ($(target),emx)
ifeq ($(target),dos32-emx)
include $(srcdir)/Makedefs.gcc
e = .exe
CXX = gcc
@ -298,24 +298,27 @@ endif
### win32 - cygwin / mingw32 / rsxnt
###
ifeq ($(target),cygwin)
ifeq ($(target),win32-cygwin)
include $(srcdir)/Makedefs.gcc
##CXX = g++-2
e = .exe
CCARCH += -mcygwin -march=i386 -mcpu=i686
LDLIBS += -lwinmm
endif
ifeq ($(target),mingw32)
ifeq ($(target),win32-mingw32)
include $(srcdir)/Makedefs.gcc
e = .exe
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
LDLIBS += -lwinmm
endif
# mingw32 as included in cygwin
ifeq ($(target),no-cygwin)
ifeq ($(target),win32-no-cygwin)
include $(srcdir)/Makedefs.gcc
e = .exe
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
LDLIBS += -lwinmm
endif
# mingw32 cross compiler
@ -325,10 +328,11 @@ e = .exe
CC = i586-mingw32msvc-gcc
CXX = i586-mingw32msvc-g++
CCARCH += -march=i386 -mcpu=i686
LDLIBS += -lwinmm
endif
# rsxnt (g++ 2.8.1)
ifeq ($(target),rsxnt)
ifeq ($(target),win32-rsxnt)
include $(srcdir)/Makedefs.gcc
e = .exe
CXX = gcc
@ -343,7 +347,7 @@ endif
### win32 - Borland C++
###
ifeq ($(target),bc)
ifeq ($(target),win32-bc)
o = .obj
a = .lib
e = .exe
@ -374,14 +378,14 @@ else
CFLAGS += -O2 -d
endif
endif # bc
endif # win32-bc
###
### win32 - Digital Mars C++
###
ifeq ($(target),dm)
ifeq ($(target),win32-dm)
o = .obj
a = .lib
e = .exe
@ -404,14 +408,14 @@ else
CFLAGS += -o
endif
endif # dm
endif # win32-dm
###
### win32 - Intel C++
###
ifeq ($(target),ic)
ifeq ($(target),win32-ic)
o = .obj
a = .lib
e = .exe
@ -446,14 +450,14 @@ else
endif
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
endif # ic
endif # win32-ic
###
### win32 - Symantec C++
###
ifeq ($(target),sc)
ifeq ($(target),win32-sc)
o = .obj
a = .lib
e = .exe
@ -476,14 +480,14 @@ else
CFLAGS += -o
endif
endif # dm
endif # win32-sc
###
### win32 - Visual C++
###
ifeq ($(target),vc)
ifeq ($(target),win32-vc)
o = .obj
a = .lib
e = .exe
@ -519,14 +523,14 @@ else
endif
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
endif # vc
endif # win32-vc
###
### win32 - Watcom C++
###
ifeq ($(target),wc)
ifeq ($(target),win32-wc)
o = .obj
a = .lib
e = .exe
@ -560,11 +564,11 @@ else
CFLAGS += -olr
endif
endif # wc
endif # win32-wc
###
### win64 - Intel C++
### win64 - Intel C++ [IA64]
###
ifeq ($(target),win64-ic)
@ -606,7 +610,7 @@ endif # win64-ic
###
### win64 - Visual C++
### win64 - Visual C++ [AMD64 & IA64]
###
ifeq ($(target),win64-vc)

View File

@ -158,7 +158,7 @@ protected:
//
**************************************************************************/
#if 0
#if 0 /* NOT USED */
class MemoryOutputFile : public FileBase
{
typedef FileBase super;

View File

@ -530,6 +530,7 @@ static int do_option(int optc, const char *arg)
opt->method = -1;
opt->all_filters = true;
opt->filter = -1;
opt->crp.m_size = 999999;
/* fallthrough */
case 900: // --best
if (!set_method(-1, 10))