diff --git a/src/init.cpp b/src/init.cpp index 7263565047..db368c7f53 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -368,6 +368,11 @@ bool AppInit2(boost::thread_group& threadGroup) sigemptyset(&sa_hup.sa_mask); sa_hup.sa_flags = 0; sigaction(SIGHUP, &sa_hup, NULL); + +#if defined (__SVR4) && defined (__sun) + // ignore SIGPIPE on Solaris + signal(SIGPIPE, SIG_IGN); +#endif #endif // ********************************************************* Step 2: parameter interactions diff --git a/src/makefile.unix b/src/makefile.unix index e00db09a33..55fd594f93 100644 --- a/src/makefile.unix +++ b/src/makefile.unix @@ -13,7 +13,7 @@ USE_IPV6:=1 LINK:=$(CXX) -DEFS=-DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 +DEFS=-DBOOST_SPIRIT_THREADSAFE -DBOOST_NO_CXX11_VARIADIC_TEMPLATES -D_FILE_OFFSET_BITS=64 DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH)) LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH)) diff --git a/src/net.cpp b/src/net.cpp index 4ee1895a80..1f461e55db 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -15,6 +15,10 @@ #include #endif +#ifndef WIN32 +#include +#endif + #ifdef USE_UPNP #include #include diff --git a/src/netbase.cpp b/src/netbase.cpp index 08d133740a..348771375c 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -9,7 +9,7 @@ #include "hash.h" #ifndef WIN32 -#include +#include #endif #include // for to_lower() diff --git a/src/script.cpp b/src/script.cpp index 2df2e9f0d5..2225ef1665 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -2,12 +2,6 @@ // Copyright (c) 2009-2012 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include -#include - -using namespace std; -using namespace boost; - #include "script.h" #include "core.h" #include "keystore.h" @@ -16,6 +10,12 @@ using namespace boost; #include "sync.h" #include "util.h" +#include +#include + +using namespace std; +using namespace boost; + bool CheckSig(vector vchSig, const vector &vchPubKey, const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType, int flags); diff --git a/src/util.h b/src/util.h index c9614d3055..f246412de0 100644 --- a/src/util.h +++ b/src/util.h @@ -101,6 +101,10 @@ T* alignup(T* p) #else #define MAX_PATH 1024 #endif +// As Solaris does not have the MSG_NOSIGNAL flag for send(2) syscall, it is defined as 0 +#ifndef MSG_NOSIGNAL +#define MSG_NOSIGNAL 0 +#endif inline void MilliSleep(int64 n) { @@ -515,6 +519,10 @@ inline void SetThreadPriority(int nPriority) } #else +// PRIO_MAX is not defined on Solaris +#ifndef PRIO_MAX + #define PRIO_MAX 20 +#endif #define THREAD_PRIORITY_LOWEST PRIO_MAX #define THREAD_PRIORITY_BELOW_NORMAL 2 #define THREAD_PRIORITY_NORMAL 0