Fixed broken Sun Studio compile (Issue 179)
parent
ddb120e208
commit
d965ca66d9
32
GNUmakefile
32
GNUmakefile
|
|
@ -146,15 +146,6 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(IS_SUN),0)
|
|
||||||
IS_64 := $(shell isainfo -b 2>/dev/null | grep -i -c "64")
|
|
||||||
ifeq ($(SUN_COMPILER)$(IS_64),11)
|
|
||||||
CXXFLAGS := -DNDEBUG -g3 -xO2 -native -template=no%extdef -m64 -Kpic
|
|
||||||
else ifeq ($(SUN_COMPILER)$(IS_64),10)
|
|
||||||
CXXFLAGS := -DNDEBUG -g3 -xO2 -native -template=no%extdef -m32
|
|
||||||
endif
|
|
||||||
endif # SunOS
|
|
||||||
|
|
||||||
# Allow use of "/" operator for GNU Assembler
|
# Allow use of "/" operator for GNU Assembler
|
||||||
ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),)
|
ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),)
|
||||||
ifeq ($(IS_GAS),1)
|
ifeq ($(IS_GAS),1)
|
||||||
|
|
@ -198,6 +189,10 @@ ifneq ($(IS_MINGW),0)
|
||||||
LDLIBS += -lws2_32
|
LDLIBS += -lws2_32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(IS_SUN),0)
|
||||||
|
LDLIBS += -lnsl -lsocket
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(IS_LINUX),1)
|
ifeq ($(IS_LINUX),1)
|
||||||
LDFLAGS += -pthread
|
LDFLAGS += -pthread
|
||||||
ifeq ($(findstring -fopenmp,$(CXXFLAGS)),-fopenmp)
|
ifeq ($(findstring -fopenmp,$(CXXFLAGS)),-fopenmp)
|
||||||
|
|
@ -218,23 +213,22 @@ LDFLAGS += -flat_namespace -undefined suppress -m
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(IS_SUN),0)
|
|
||||||
LDLIBS += -lnsl -lsocket
|
|
||||||
M32OR64 = -m$(shell isainfo -b)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(SUN_COMPILER),0) # override flags for CC Sun C++ compiler
|
ifneq ($(SUN_COMPILER),0) # override flags for CC Sun C++ compiler
|
||||||
CXXFLAGS ?= -DNDEBUG -O -g0 -native -template=no%extdef $(M32OR64)
|
IS_64 := $(shell isainfo -b 2>/dev/null | grep -i -c "64")
|
||||||
LDFLAGS =
|
ifeq ($(SUN_COMPILER)$(IS_64),11)
|
||||||
AR = $(CXX)
|
CXXFLAGS := -DNDEBUG -g3 -xO2 -native -template=no%extdef -m64 -Kpic
|
||||||
ARFLAGS = -xar -o
|
else ifeq ($(SUN_COMPILER)$(IS_64),10)
|
||||||
RANLIB = true
|
CXXFLAGS := -DNDEBUG -g3 -xO2 -native -template=no%extdef -m32
|
||||||
|
endif
|
||||||
SUN_CC10_BUGGY := $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun .* 5\.10 .* (2009|2010/0[1-4])")
|
SUN_CC10_BUGGY := $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun .* 5\.10 .* (2009|2010/0[1-4])")
|
||||||
ifneq ($(SUN_CC10_BUGGY),0)
|
ifneq ($(SUN_CC10_BUGGY),0)
|
||||||
# -DCRYPTOPP_INCLUDE_VECTOR_CC is needed for Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21 and was fixed in May 2010
|
# -DCRYPTOPP_INCLUDE_VECTOR_CC is needed for Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21 and was fixed in May 2010
|
||||||
# remove it if you get "already had a body defined" errors in vector.cc
|
# remove it if you get "already had a body defined" errors in vector.cc
|
||||||
CXXFLAGS += -DCRYPTOPP_INCLUDE_VECTOR_CC
|
CXXFLAGS += -DCRYPTOPP_INCLUDE_VECTOR_CC
|
||||||
endif
|
endif
|
||||||
|
AR = $(CXX)
|
||||||
|
ARFLAGS = -xar -o
|
||||||
|
RANLIB = true
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Undefined Behavior Sanitizer (UBsan) testing. There's no sense in
|
# Undefined Behavior Sanitizer (UBsan) testing. There's no sense in
|
||||||
|
|
|
||||||
4
ida.cpp
4
ida.cpp
|
|
@ -394,11 +394,11 @@ size_t PaddingRemover::Put2(const byte *begin, size_t length, int messageEnd, bo
|
||||||
m_possiblePadding = false;
|
m_possiblePadding = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__MWERKS__) && (_MSC_VER <= 1300)
|
#if defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__MWERKS__)
|
||||||
// VC60 and VC7 workaround: built-in reverse_iterator has two template parameters, Dinkumware only has one
|
// VC60 and VC7 workaround: built-in reverse_iterator has two template parameters, Dinkumware only has one
|
||||||
typedef std::reverse_bidirectional_iterator<const byte *, const byte> RevIt;
|
typedef std::reverse_bidirectional_iterator<const byte *, const byte> RevIt;
|
||||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
typedef std::reverse_iterator<const byte *, random_access_iterator_tag, const byte> RevIt;
|
typedef std::reverse_iterator<const byte *, std::random_access_iterator_tag, const byte> RevIt;
|
||||||
#else
|
#else
|
||||||
typedef std::reverse_iterator<const byte *> RevIt;
|
typedef std::reverse_iterator<const byte *> RevIt;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -665,7 +665,7 @@ void Deflator::EncodeBlock(bool eof, unsigned int blockType)
|
||||||
// VC60 and VC7 workaround: built-in std::reverse_iterator has two template parameters, Dinkumware only has one
|
// VC60 and VC7 workaround: built-in std::reverse_iterator has two template parameters, Dinkumware only has one
|
||||||
typedef std::reverse_bidirectional_iterator<unsigned int *, unsigned int> RevIt;
|
typedef std::reverse_bidirectional_iterator<unsigned int *, unsigned int> RevIt;
|
||||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
typedef std::reverse_iterator<unsigned int *, random_access_iterator_tag, unsigned int> RevIt;
|
typedef std::reverse_iterator<unsigned int *, std::random_access_iterator_tag, unsigned int> RevIt;
|
||||||
#else
|
#else
|
||||||
typedef std::reverse_iterator<unsigned int *> RevIt;
|
typedef std::reverse_iterator<unsigned int *> RevIt;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue