diff --git a/src/Makefile.bld b/src/Makefile.bld index 8683690e..bd2e495a 100644 --- a/src/Makefile.bld +++ b/src/Makefile.bld @@ -43,8 +43,10 @@ override T = $(basename $@) # // compiler defaults # ************************************************************************/ -CC_COMPILE = $(CC) $(CCARCH) $(DEFS) $(EXTRA_DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_OUTPUT) -c $< -CXX_COMPILE = $(CXX) $(CXXARCH) $(DEFS) $(EXTRA_DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CXXFLAGS) $(EXTRA_CXXFLAGS) $(CXXFLAGS_OUTPUT) -c $< +CC_SRC = $< +CXX_SRC = $< +CC_COMPILE = $(CC) $(CCARCH) $(DEFS) $(EXTRA_DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_OUTPUT) -c $(CC_SRC) +CXX_COMPILE = $(CXX) $(CXXARCH) $(DEFS) $(EXTRA_DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CXXFLAGS) $(EXTRA_CXXFLAGS) $(CXXFLAGS_OUTPUT) -c $(CXX_SRC) CXX_LINK_EXE = $(CXXLD) $(CXXLDARCH) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LINK_EXE_OUTPUT) $^ $(LDLIBS) $(EXTRA_LDLIBS) $(LINK_EXE_LDFLAGS) STUBEDIT_EXE = STUBIFY_EXE = @@ -92,7 +94,7 @@ endif # ************************************************************************/ ifeq ($(WITH_ZLIB),1) -DOS_LDLIBS += zlib114.lib +DOS_LDLIBS += zlib.lib endif UCLDIR:=$(strip $(subst \,/,$(UCLDIR))) @@ -283,7 +285,7 @@ e = .exe CXX = gcc CFLAGS_O = -O2 CCARCH += -mno-probe -LDFLAGS = -s +LDFLAGS = -L. -s endif @@ -327,7 +329,7 @@ e = .exe CXX = gcc CFLAGS_O = -O2 CCARCH += -Zwin32 -Zsys -mno-probe -LDFLAGS = -s +LDFLAGS = -L. -s STUBEDIT_EXE = pestack -s1024 -c1024 $@ endif @@ -341,10 +343,15 @@ o = .obj a = .lib e = .exe CC = bcc32 -3 +ifeq ($(UPX_BROKEN_INCLUDES),1) +ifneq ($(srcdir),.) +INCLUDES += -I$(srcdir) +endif INCLUDES += -I$(srcdir)/acc ifneq ($(strip $(wildcard $(srcdir)/filter)),) INCLUDES += -I$(srcdir)/filter endif +endif CFLAGS = -w -w-inl -g1 CFLAGS_OUTPUT = -o$@ LDFLAGS = -ls @@ -419,12 +426,12 @@ export LIB ifeq (1,2) # statically link libc.lib CC += -ML - LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj +## DOS_LDLIBS := $(DOS_LDLIBS:.lib=_ml.lib) else # link against msvcrt.dll CC += -MD - LDLIBS = $(DOS_LDLIBS) setargv.obj endif +LDLIBS = $(DOS_LDLIBS) setargv.obj ifeq ($(DEBUG),1) CFLAGS += -Od -ZI LINK_EXE_LDFLAGS += /debug @@ -491,12 +498,12 @@ export LIB ifeq (1,1) # statically link libc.lib CC += -ML - LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj +## DOS_LDLIBS := $(DOS_LDLIBS:.lib=_ml.lib) else # link against msvcrt.dll CC += -MD - LDLIBS = $(DOS_LDLIBS) setargv.obj endif +LDLIBS = $(DOS_LDLIBS) setargv.obj ifeq ($(DEBUG),1) CFLAGS += -Od -ZI LINK_EXE_LDFLAGS += /debug @@ -527,11 +534,13 @@ LDFLAGS = -k0x100000 -fm LINK_EXE_OUTPUT = -fe=$@ LDLIBS = $(DOS_LDLIBS) -INCLUDES:=$(strip $(subst /,\\,$(INCLUDES))) +CC_SRC = $(subst /,\\,$<) +CXX_SRC = $(subst /,\\,$<) +INCLUDES := $(strip $(subst /,\\,$(INCLUDES))) ifeq (1,2) - WCL386:=$(INCLUDES) + WCL386 := $(INCLUDES) export WCL386 - INCLUDES:= + INCLUDES := endif ifneq ($(strip $(DOS_LIBDIRS)),) @@ -573,12 +582,12 @@ export LIB ifeq (1,2) # statically link libc.lib CC += -ML - LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj +## DOS_LDLIBS := $(DOS_LDLIBS:.lib=_ml.lib) else # link against msvcrt.dll CC += -MD - LDLIBS = $(DOS_LDLIBS) setargv.obj endif +LDLIBS = $(DOS_LDLIBS) setargv.obj ifeq ($(DEBUG),1) CFLAGS += -Od -ZI LINK_EXE_LDFLAGS += /debug @@ -615,12 +624,12 @@ export LIB ifeq (1,1) # statically link libc.lib CC += -ML - LDLIBS = $(DOS_LDLIBS:.lib=_ml.lib) setargv.obj +## DOS_LDLIBS := $(DOS_LDLIBS:.lib=_ml.lib) else # link against msvcrt.dll CC += -MD - LDLIBS = $(DOS_LDLIBS) setargv.obj endif +LDLIBS = $(DOS_LDLIBS) setargv.obj ifeq ($(DEBUG),1) CFLAGS += -Od -ZI LINK_EXE_LDFLAGS += /debug diff --git a/src/conf.h b/src/conf.h index 1fbb2d97..316daaea 100644 --- a/src/conf.h +++ b/src/conf.h @@ -194,13 +194,13 @@ #endif #if !defined(VALGRIND_MAKE_READABLE) # if 0 -# define VALGRIND_MAKE_READABLE(addr,len) memset(addr,0,len), 0 +# define VALGRIND_MAKE_READABLE(addr,len) (memset(addr,0,len), 0) # else # define VALGRIND_MAKE_READABLE(addr,len) 0 # endif #endif #if !defined(VALGRIND_DISCARD) -# define VALGRIND_DISCARD(handle) ((void) &handle) +# define VALGRIND_DISCARD(handle) ACC_UNUSED(handle) #endif @@ -288,14 +288,6 @@ # define __attribute_packed #endif - -#undef NOTHROW -#if defined(__cplusplus) -# define NOTHROW throw() -#else -# define NOTHROW -#endif - #if !defined(O_BINARY) # define O_BINARY 0 #endif diff --git a/src/file.cpp b/src/file.cpp index 68b134a8..4c65ef64 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -378,7 +378,7 @@ void OutputFile::dump(const char *name, const void *buf, int len, int flags) flags = O_CREAT | O_BINARY | O_TRUNC; flags |= O_WRONLY; OutputFile f; - f.open(name, flags, 0666); + f.open(name, flags, 0600); f.write(buf, len); f.closex(); } diff --git a/src/stdcxx.h b/src/stdcxx.h index 048bb5fa..11387442 100644 --- a/src/stdcxx.h +++ b/src/stdcxx.h @@ -31,58 +31,10 @@ #ifdef __cplusplus +#include "acc/acc_cxx.h" -#if !defined(NOTHROW) -# define NOTHROW throw() -#endif - - -/************************************************************************* -// disable dynamic allocation of an object -**************************************************************************/ - -#if defined(new) || defined(delete) || defined(__EMX__) || (ACC_CC_SYMANTECC) - -// debug -# define DISABLE_NEW_DELETE private: - -#else - -# if 1 -# define DISABLE_NEW_DELETE_PLACEMENT_NEW \ - static void *operator new(size_t, void *); -# endif -# if (ACC_CC_GNUC >= 0x030000ul) -# define DISABLE_NEW_DELETE_PLACEMENT_DELETE \ - static void operator delete(void *, void *) NOTHROW { } -# elif (ACC_CC_INTELC) -# define DISABLE_NEW_DELETE_PLACEMENT_DELETE \ - static void operator delete(void *, void *) NOTHROW { } -# elif (ACC_CC_MSC && (_MSC_VER >= 1200)) -# define DISABLE_NEW_DELETE_PLACEMENT_DELETE \ - static void operator delete(void *, void *) NOTHROW { } -# endif - -# if !defined(DISABLE_NEW_DELETE_PLACEMENT_NEW) -# define DISABLE_NEW_DELETE_PLACEMENT_NEW -# undef DISABLE_NEW_DELETE_PLACEMENT_DELETE -# endif -# if !defined(DISABLE_NEW_DELETE_PLACEMENT_DELETE) -# define DISABLE_NEW_DELETE_PLACEMENT_DELETE -# endif - -# define DISABLE_NEW_DELETE \ -private: \ - static void *operator new(size_t); \ - static void *operator new[](size_t); \ - DISABLE_NEW_DELETE_PLACEMENT_NEW \ -protected: \ - static void operator delete(void *) NOTHROW { } \ - static void operator delete[](void *) NOTHROW { } \ - DISABLE_NEW_DELETE_PLACEMENT_DELETE \ -private: - -#endif +#define NOTHROW ACC_CXX_NOTHROW +#define DISABLE_NEW_DELETE ACC_CXX_DISABLE_NEW_DELETE_STRICT /*************************************************************************