Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions c/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,14 +105,19 @@ elseif (SASL_IMPL STREQUAL none)
endif ()

# Set Compiler extra flags for Solaris when using SunStudio
if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mt" )
if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mt -D_REENTRANT")
endif()

if(CMAKE_C_COMPILER_ID STREQUAL "SunPro" )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mt")
if (CMAKE_C_COMPILER_ID STREQUAL "SunPro")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mt -D_REENTRANT")
endif()

# Set linker's extra flags for Solaris (used by SunStudio and GCC without discrimination)
if (CMAKE_HOST_SOLARIS)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lsocket")
endif(CMAKE_HOST_SOLARIS)

# Link in openssl if present
if (SSL_IMPL STREQUAL openssl)
set (pn_ssl_impl src/ssl/openssl.c)
Expand Down Expand Up @@ -231,9 +236,18 @@ if (CMAKE_COMPILER_IS_GNUCC)
set (COMPILE_WARNING_FLAGS "${CXX_WARNING_FLAGS}")
endif (NOT BUILD_WITH_CXX)

if (CMAKE_HOST_SOLARIS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
endif (CMAKE_HOST_SOLARIS)

if (ENABLE_UNDEFINED_ERROR)
set (CATCH_UNDEFINED "-Wl,--no-undefined")
set (ALLOW_UNDEFINED "-Wl,--allow-shlib-undefined")
if (CMAKE_HOST_SOLARIS)
set (CATCH_UNDEFINED "-zdefs")
set (ALLOW_UNDEFINED "-znodefs")
else(CMAKE_HOST_SOLARIS)
set (CATCH_UNDEFINED "-Wl,--no-undefined")
set (ALLOW_UNDEFINED "-Wl,--allow-shlib-undefined")
endif(CMAKE_HOST_SOLARIS)
endif (ENABLE_UNDEFINED_ERROR)

if (ENABLE_LINKTIME_OPTIMIZATION)
Expand Down
4 changes: 2 additions & 2 deletions c/src/reactor/io/posix/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ static ssize_t nosigpipe_send(int fd, const void *buffer, size_t size) {
if (!sigpipeIsPending) {
sigemptyset(&newSignals);
sigaddset(&newSignals, SIGPIPE);
if (sigmaskErr = pthread_sigmask(SIG_BLOCK, (const sigset_t *)&newSignals, (sigset_t *)&oldSignals))
if ((sigmaskErr = pthread_sigmask(SIG_BLOCK, (const sigset_t *)&newSignals, (sigset_t *)&oldSignals)) != 0)
{
errno = sigmaskErr;
return -1;
Expand All @@ -288,7 +288,7 @@ static ssize_t nosigpipe_send(int fd, const void *buffer, size_t size) {
while (-1 == sigtimedwait(&newSignals, NULL, &(struct timespec){ 0, 0 }) && errno == EINTR)
; //do nothing
}
if (sigmaskErr = pthread_sigmask(SIG_SETMASK, (const sigset_t *)&oldSignals, (sigset_t *)NULL))
if ((sigmaskErr = pthread_sigmask(SIG_SETMASK, (const sigset_t *)&oldSignals, (sigset_t *)NULL)) != 0)
{
errno = sigmaskErr;
return -1;
Expand Down