Final updates for upx 1.92.

committer: mfx <mfx> 1090281040 +0000
This commit is contained in:
Markus F.X.J. Oberhumer 2004-07-19 23:50:40 +00:00
parent 95021e4977
commit 814eabb88e
4 changed files with 14 additions and 14 deletions

4
README
View File

@ -20,10 +20,10 @@ All versions 1.9x are unstable beta releases - use them only for testing,
and never distribute a program that is packed with them ! and never distribute a program that is packed with them !
There will be hidden bugs. Really. There will be hidden bugs. Really.
The current stable release is 1.24, and the next stable release The current stable release is 1.25, and the next stable release
will be called version 2.00. will be called version 2.00.
The main news since 1.24 are: The main news since 1.25 are:
- slightly better compression using the new NRV2E algorithm - slightly better compression using the new NRV2E algorithm
- new options for compression tuining (e.g. `--brute') - new options for compression tuining (e.g. `--brute')
- support for bootable Linux kernels ("vmlinuz/386") - support for bootable Linux kernels ("vmlinuz/386")

View File

@ -69,11 +69,11 @@ Tools needed to build/modify the UPX sources
- A C++ compiler supporting inner classes, templates, exceptions - A C++ compiler supporting inner classes, templates, exceptions
and RTTI. and RTTI.
- GNU make for Win32 - GNU make 3.80 for Win32
http://upx.sourceforge.net/download/tools/ http://www.cygwin.com/
- GNU make for DOS - GNU make 3.80 for DOS
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/ http://www.delorie.com/djgpp/
To compile the packer sources To compile the packer sources
@ -81,8 +81,8 @@ To compile the packer sources
set the environment variable UCLDIR to point to your UCL installation, e.g. set the environment variable UCLDIR to point to your UCL installation, e.g.
set UCLDIR=c:\src\ucl-1.01 (DOS / Windows) set UCLDIR=c:\src\ucl-1.02 (DOS / Windows)
export UCLDIR=$HOME/local/src/ucl-1.01 (Unix) export UCLDIR=$HOME/local/src/ucl-1.02 (Unix)
then type then type

View File

@ -88,10 +88,10 @@
# pragma warning(disable: 4514) // W4: 'function': unreferenced inline function has been removed # pragma warning(disable: 4514) // W4: 'function': unreferenced inline function has been removed
# pragma warning(disable: 4710) // W4: 'function': function not inlined # pragma warning(disable: 4710) // W4: 'function': function not inlined
# if (_MSC_VER >= 1300) # if (_MSC_VER >= 1300)
# pragma warning(disable: 4625) // W4: # pragma warning(disable: 4625) // W4: 'class' : copy constructor could not be generated because a base class copy constructor is inaccessible
# pragma warning(disable: 4626) // W4: # pragma warning(disable: 4626) // W4: 'class' : assignment operator could not be generated because a base class assignment operator is inaccessible
# pragma warning(disable: 4711) // W4: # pragma warning(disable: 4711) // W4: 'function' selected for automatic inline expansion
# pragma warning(disable: 4820) // W4: # pragma warning(disable: 4820) // W4: 'struct' : 'x' bytes padding added after member 'member'
# endif # endif
# if (_MSC_VER >= 1400) # if (_MSC_VER >= 1400)
# pragma warning(disable: 4996) // W1: 'function': was declared deprecated # pragma warning(disable: 4996) // W1: 'function': was declared deprecated

View File

@ -70,7 +70,7 @@ const int *PackVmlinuxI386::getFilters() const
} }
static int __acc_cdecl_qsort static int __acc_cdecl_qsort
compare_Phdr(void const *const aa, void const *const bb) compare_Phdr(void const *aa, void const *bb)
{ {
Elf_LE32_Phdr const *const a = (Elf_LE32_Phdr const *)aa; Elf_LE32_Phdr const *const a = (Elf_LE32_Phdr const *)aa;
Elf_LE32_Phdr const *const b = (Elf_LE32_Phdr const *)bb; Elf_LE32_Phdr const *const b = (Elf_LE32_Phdr const *)bb;
@ -140,7 +140,7 @@ bool PackVmlinuxI386::canPack()
return false; return false;
} }
if (0 < j) { if (0 < j) {
unsigned const sz = -phdri[j-1].p_align unsigned const sz = (0u - phdri[j-1].p_align)
& (phdri[j-1].p_align -1 + phdri[j-1].p_filesz); & (phdri[j-1].p_align -1 + phdri[j-1].p_filesz);
if ((sz + phdri[j-1].p_offset)!=phdri[j].p_offset) { if ((sz + phdri[j-1].p_offset)!=phdri[j].p_offset) {
return false; return false;