Win64 updates.

committer: mfx <mfx> 1060086924 +0000
This commit is contained in:
Markus F.X.J. Oberhumer 2003-08-05 12:35:24 +00:00
parent 5125f4d4ac
commit 9e154e33c3
10 changed files with 114 additions and 13 deletions

View File

@ -1,3 +1,4 @@
B
ChangeLog.cvs*
build
doxygen

2
NEWS
View File

@ -7,7 +7,7 @@ User visible changes for UPX
[ WARNING: there are known bugs in the win32/pe format which cause
crashes on a number of exes ]
Changes in 1.91 beta (XX Mar 2003):
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

View File

@ -13,6 +13,7 @@ GNUmakefile
.gdbinit
.Attic
.deps
B
compress_nrv.*
upx
upx_nrv

View File

@ -260,7 +260,7 @@ endif
###
### dos32 - djgpp2
### dos32 - djgpp2 / emx
###
ifeq ($(target),djgpp2)
@ -275,7 +275,16 @@ ifneq ($(strip $(wildcard $(DJDIR)/bin/cwsdstub.ex[eE])),)
STUBIFY_EXE = mfxdjstubify -v -s $(DJDIR)/bin/cwsdstub.exe $@
endif
endif
endif # djgpp2
endif
ifeq ($(target),emx)
include $(srcdir)/Makedefs.gcc
e = .exe
CXX = gcc
CFLAGS_O = -O2
CCARCH += -mno-probe
LDFLAGS = -s
endif
###
@ -284,6 +293,7 @@ endif # djgpp2
ifeq ($(target),cygwin)
include $(srcdir)/Makedefs.gcc
##CXX = g++-2
e = .exe
CCARCH += -mcygwin -march=i386 -mcpu=i686
endif
@ -501,7 +511,7 @@ endif # vc
###
### win32 - Watcom C++ 11.0c / Open Watcom C++ 1.0
### win32 - Watcom C++
###
ifeq ($(target),wc)
@ -509,6 +519,7 @@ o = .obj
a = .lib
e = .exe
CC = wcl386 -zq -bt=nt -mf -5r
##CC = wcl386 -zq -bt=dos -l=CauseWay -mf -5r
CFLAGS = -zc -w5 -we
CXXFLAGS = $(CFLAGS) -xs -xr
CFLAGS_OUTPUT = -fo=$@
@ -538,6 +549,90 @@ endif
endif # wc
###
### win64 - Intel C++
###
ifeq ($(target),win64-ic)
o = .obj
a = .lib
e = .exe
CC = ecl -nologo
CFLAGS = -W3
CXXFLAGS = $(CFLAGS) -EHac -GR
LDFLAGS =
LINK_EXE_OUTPUT = -Fe$@
LINK_EXE_LDFLAGS = /link /map:$T.map
##LINK_EXE_LDFLAGS += /verbose
ifneq ($(strip $(DOS_LIBDIRS)),)
LIB := $(DOS_LIBDIRS);$(LIB)
endif
export LIB
ifeq (1,2)
# statically link libc.lib
CC += -ML
LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj
else
# link against msvcrt.dll
CC += -MD
LDLIBS = $(DOS_LDLIBS) setargv.obj
endif
ifeq ($(DEBUG),1)
CFLAGS += -Od -ZI
LINK_EXE_LDFLAGS += /debug
else
CFLAGS += -O1 -GF
LINK_EXE_LDFLAGS += /release
endif
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
endif # win64-ic
###
### win64 - Visual C++
###
ifeq ($(target),win64-vc)
o = .obj
a = .lib
e = .exe
CC = cl -nologo
CFLAGS = -W4
CXXFLAGS = $(CFLAGS) -EHac -GR
LDFLAGS =
LINK_EXE_OUTPUT = -Fe$@
LINK_EXE_LDFLAGS = /link /map:$T.map
##LINK_EXE_LDFLAGS += /verbose
ifneq ($(strip $(DOS_LIBDIRS)),)
LIB := $(DOS_LIBDIRS);$(LIB)
endif
export LIB
ifeq (1,1)
# statically link libc.lib
CC += -ML
LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj
else
# link against msvcrt.dll
CC += -MD
LDLIBS = $(DOS_LDLIBS) setargv.obj
endif
ifeq ($(DEBUG),1)
CFLAGS += -Od -ZI
LINK_EXE_LDFLAGS += /debug
else
CFLAGS += -O1 -GF
LINK_EXE_LDFLAGS += /release
endif
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
endif # win64-vc
# /***********************************************************************
# // malloc debuggers and memory checkers - somewhat obsolete, use valgrind
# ************************************************************************/

View File

@ -43,9 +43,6 @@
#include "acc/acc_incd.h"
#include "acc/acc_ince.h"
#include "acc/acc_lib.h"
#if !defined(acc_int64l_t) || !defined(acc_uint64l_t)
# error "need a 64-bit integer type"
#endif
#if (ACC_OS_WIN32 || ACC_OS_WIN64)
# if defined(INVALID_HANDLE_VALUE) || defined(MAKEWORD) || defined(RT_CURSOR)
# error "something pulled in <windows.h>"
@ -54,8 +51,8 @@
#if (ACC_CC_BORLANDC)
# if (__BORLANDC__ < 0x0520)
# error "need Borland C++ 5.02 or newer"
# if (__BORLANDC__ < 0x0500)
# error "need Borland C++ 5.0 or newer"
# endif
# pragma warn -aus // 8004: 'x' is assigned a value that is never used
# pragma warn -inl // 8026+8027: Function not expanded inline

View File

@ -1018,7 +1018,6 @@ void upx_sanity_check(void)
COMPILE_TIME_ASSERT(sizeof(int) == 4)
COMPILE_TIME_ASSERT(sizeof(long) >= 4)
COMPILE_TIME_ASSERT(sizeof(void *) >= 4)
COMPILE_TIME_ASSERT(sizeof(long) >= sizeof(void *))
COMPILE_TIME_ASSERT(sizeof(off_t) >= sizeof(long))
COMPILE_TIME_ASSERT(((off_t) -1) < 0)

View File

@ -92,7 +92,7 @@ void PackLinuxI386sh::patchLoader() { }
bool PackLinuxI386sh::getShellName(char *buf)
{
exetype = -1;
l_shname = strcspn(buf, " \t\n\v\f\r");
l_shname = (int) strcspn(buf, " \t\n\v\f\r");
buf[l_shname] = 0;
static char const *const shname[] = { // known shells that accept "-c" arg
"ash", "bash", "bsh", "csh", "ksh", "pdksh", "sh", "tcsh", "zsh",

View File

@ -910,7 +910,7 @@ unsigned Packer::unoptimizeReloc32(upx_byte **in, upx_byte *image,
}
//fprintf(stderr,"relocnum=%x\n",relocn);
*in = p+1;
return relocs - outp;
return (unsigned) (relocs - outp);
}

View File

@ -710,7 +710,7 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
break;
case 'p':
strvalue = (const char *) va_arg (args, const void *);
fmtint (buffer, &currlen, maxlen, (long) strvalue, 16, min, max, flags);
fmtint (buffer, &currlen, maxlen, (LLONG) (acc_uintptr_t) strvalue, 16, min, max, flags);
break;
case 'n':
if (cflags == DP_C_SHORT) {

View File

@ -538,7 +538,15 @@ unsigned get_ratio(unsigned u_len, unsigned c_len)
const unsigned n = 1000000;
if (u_len <= 0)
return c_len <= 0 ? 0 : n;
#if defined(acc_uint64l_t)
return (unsigned) ((c_len * (acc_uint64l_t)n) / u_len);
#else
# if 0
return (unsigned) acc_umuldiv32(c_len, n, u_len);
# else
return (unsigned) ((c_len * (double)n) / u_len);
# endif
#endif
}