1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

Added support for Intel C++ 7.0.

committer: mfx <mfx> 1042686101 +0000
This commit is contained in:
Markus F.X.J. Oberhumer 2003-01-16 03:01:41 +00:00
parent 888ac8a220
commit e96ad21db1
10 changed files with 55 additions and 25 deletions

View File

@ -217,6 +217,29 @@ CHMOD_EXE = chmod 755 $@
endif # linux
###
### Linux/i386 with Intel C++ 7.0
###
ifeq ($(target),linux-intelc70)
CC = icc
CXX = icc
CFLAGS_OUTPUT = -o $@
LINK_EXE_OUTPUT = -o $@
DEFS += '-DUPX_CONFIG_H="config_h/linux.h"'
CFLAGS = $(CFLAGS_WERROR)
ifeq ($(DEBUG),1)
CFLAGS += -g -O0
else
CFLAGS += -O2
endif
CXXFLAGS_2 += -fno-rtti
LDFLAGS += -Wl,-Map,$T.map
endif
###
### Linux cross compilers
###

View File

@ -229,7 +229,7 @@ public:
BE16& operator &= (unsigned v) { set_be16(d, get_be16(d) & v); return *this; }
BE16& operator |= (unsigned v) { set_be16(d, get_be16(d) | v); return *this; }
operator const unsigned () const { return get_be16(d); }
operator unsigned () const { return get_be16(d); }
}
__attribute_packed;
@ -247,7 +247,7 @@ public:
BE32& operator &= (unsigned v) { set_be32(d, get_be32(d) & v); return *this; }
BE32& operator |= (unsigned v) { set_be32(d, get_be32(d) | v); return *this; }
operator const unsigned () const { return get_be32(d); }
operator unsigned () const { return get_be32(d); }
}
__attribute_packed;
@ -265,7 +265,7 @@ public:
LE16& operator &= (unsigned v) { set_le16(d, get_le16(d) & v); return *this; }
LE16& operator |= (unsigned v) { set_le16(d, get_le16(d) | v); return *this; }
operator const unsigned () const { return get_le16(d); }
operator unsigned () const { return get_le16(d); }
}
__attribute_packed;
@ -283,7 +283,7 @@ public:
LE32& operator &= (unsigned v) { set_le32(d, get_le32(d) & v); return *this; }
LE32& operator |= (unsigned v) { set_le32(d, get_le32(d) | v); return *this; }
operator const unsigned () const { return get_le32(d); }
operator unsigned () const { return get_le32(d); }
}
__attribute_packed;
@ -294,44 +294,44 @@ __attribute_packed;
inline bool operator < (const BE16& v1, const BE16& v2)
{
return (const unsigned)v1 < (const unsigned)v2;
return (unsigned)v1 < (unsigned)v2;
}
inline bool operator < (const BE32& v1, const BE32& v2)
{
return (const unsigned)v1 < (const unsigned)v2;
return (unsigned)v1 < (unsigned)v2;
}
inline bool operator < (const LE16& v1, const LE16& v2)
{
return (const unsigned)v1 < (const unsigned)v2;
return (unsigned)v1 < (unsigned)v2;
}
inline bool operator < (const LE32& v1, const LE32& v2)
{
return (const unsigned)v1 < (const unsigned)v2;
return (unsigned)v1 < (unsigned)v2;
}
template <class T>
inline T* operator + (T* ptr, const BE16& v) { return ptr + (const unsigned) v; }
inline T* operator + (T* ptr, const BE16& v) { return ptr + (unsigned) v; }
template <class T>
inline T* operator - (T* ptr, const BE16& v) { return ptr - (const unsigned) v; }
inline T* operator - (T* ptr, const BE16& v) { return ptr - (unsigned) v; }
template <class T>
inline T* operator + (T* ptr, const BE32& v) { return ptr + (const unsigned) v; }
inline T* operator + (T* ptr, const BE32& v) { return ptr + (unsigned) v; }
template <class T>
inline T* operator - (T* ptr, const BE32& v) { return ptr - (const unsigned) v; }
inline T* operator - (T* ptr, const BE32& v) { return ptr - (unsigned) v; }
template <class T>
inline T* operator + (T* ptr, const LE16& v) { return ptr + (const unsigned) v; }
inline T* operator + (T* ptr, const LE16& v) { return ptr + (unsigned) v; }
template <class T>
inline T* operator - (T* ptr, const LE16& v) { return ptr - (const unsigned) v; }
inline T* operator - (T* ptr, const LE16& v) { return ptr - (unsigned) v; }
template <class T>
inline T* operator + (T* ptr, const LE32& v) { return ptr + (const unsigned) v; }
inline T* operator + (T* ptr, const LE32& v) { return ptr + (unsigned) v; }
template <class T>
inline T* operator - (T* ptr, const LE32& v) { return ptr - (const unsigned) v; }
inline T* operator - (T* ptr, const LE32& v) { return ptr - (unsigned) v; }
/*************************************************************************

View File

@ -456,12 +456,10 @@ inline void operator delete[](void *p)
// An Array allocates memory on the heap, but automatically
// gets destructed when leaving scope or on exceptions.
// "var" is declared as a read-only reference to a pointer
// and behaves exactly like an array "var[]".
#define Array(type, var, size) \
assert((int)(size) > 0); \
MemBuffer var ## _membuf((size)*(sizeof(type))); \
type * const & var = ((type *) var ## _membuf.getVoidPtr())
type * const var = ((type *) var ## _membuf.getVoidPtr())
#define ByteArray(var, size) Array(unsigned char, var, size)

View File

@ -38,6 +38,9 @@ class MemBuffer;
class File
{
protected:
File() { }
virtual ~File() { }
public:
static void chmod(const char *name, int mode);
static void rename(const char *old_, const char *new_);

View File

@ -52,7 +52,7 @@ public:
virtual int canUnpack();
protected:
virtual const unsigned getCallTrickOffset() const { return 0x100; }
virtual unsigned getCallTrickOffset() const { return 0x100; }
protected:
virtual int buildLoader(const Filter *ft);

View File

@ -206,7 +206,7 @@ PackLinuxI386::pack4(OutputFile *fo, Filter &ft)
fo->write(shstrtab, sizeof(shstrtab));
#endif // }
#define PAGE_MASK (~0<<12)
#define PAGE_MASK (~0u<<12)
// pre-calculate for benefit of runtime disappearing act via munmap()
elfout.phdr[0].p_memsz = PAGE_MASK & (~PAGE_MASK + elfout.phdr[0].p_filesz);
#undef PAGE_MASK

View File

@ -46,7 +46,7 @@ public:
virtual bool canPack();
protected:
virtual const unsigned getCallTrickOffset() const { return 0; }
virtual unsigned getCallTrickOffset() const { return 0; }
protected:
virtual int buildLoader(const Filter *ft);

View File

@ -1063,13 +1063,13 @@ class Resource
upx_byte *name;
upx_rnode *parent;
};
struct upx_rbranch : upx_rnode
struct upx_rbranch : public upx_rnode
{
unsigned nc;
upx_rnode **children;
res_dir data;
};
struct upx_rleaf : upx_rnode
struct upx_rleaf : public upx_rnode
{
upx_rleaf *next;
unsigned newoffset;

View File

@ -156,6 +156,12 @@
# define HAVE_MODE_T 1
# define HAVE_CHMOD 1
# define HAVE_UTIME 1
#elif defined(__INTEL_COMPILER)
# if (__INTEL_COMPILER >= 700)
# pragma warning(disable: 810) // #810: conversion from "A" to "B" may lose significant bits
# pragma warning(disable: 981) // #981: operands are evaluated in unspecified order
# pragma warning(disable: 1418) // #1418: external definition with no prior declaration
# endif
#elif defined(_MSC_VER)
# define __UPX_CDECL __cdecl
# define SIGTYPEENTRY __cdecl

View File

@ -704,7 +704,7 @@ char *textdomain(const char *)
#endif /* __linux__ && __GLIBC__ */
}; // extern "C"
} // extern "C"
/*