[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Fix Solaris and Sun Studio support
[Thread Prev] | [Thread Next]
- Subject: [PATCH] Fix Solaris and Sun Studio support
- From: William Orr <will@xxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Wed, 25 Dec 2019 18:07:41 +0100
- To: "libssh@xxxxxxxxxx" <libssh@xxxxxxxxxx>
This fixes support on Solaris and building with Sun Studio 12.6. - Add missing includes - Define compatibility macros to expose function definitions - Don't enable pedantic, since it disallows `__thread` Tested on Solaris 11.4 x86 --- CompilerChecks.cmake | 11 ++++++++++- src/channels.c | 1 + src/dh.c | 2 ++ src/misc.c | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CompilerChecks.cmake b/CompilerChecks.cmake index 5bdc05c3..8806c617 100644 --- a/CompilerChecks.cmake +++ b/CompilerChecks.cmake @@ -17,7 +17,6 @@ if (UNIX) endif() add_c_compiler_flag("-std=gnu99" SUPPORTED_COMPILER_FLAGS) - add_c_compiler_flag("-Wpedantic" SUPPORTED_COMPILER_FLAGS) add_c_compiler_flag("-Wall" SUPPORTED_COMPILER_FLAGS) add_c_compiler_flag("-Wshadow" SUPPORTED_COMPILER_FLAGS) add_c_compiler_flag("-Wmissing-prototypes" SUPPORTED_COMPILER_FLAGS) @@ -58,6 +57,10 @@ if (UNIX) add_c_compiler_flag("-Wno-gnu-zero-variadic-macro-arguments" SUPPORTED_COMPILER_FLAGS) endif() + if (NOT "${_C_COMPILER_ID}" STREQUAL "sunpro") + add_c_compiler_flag("-Wpedantic" SUPPORTED_COMPILER_FLAGS) + endif() + add_c_compiler_flag("-fno-common" SUPPORTED_COMPILER_FLAGS) if (CMAKE_BUILD_TYPE) @@ -114,6 +117,12 @@ if (OSX) add_c_compiler_flag("-Wno-deprecated-declarations" SUPPORTED_COMPILER_FLAGS) endif() +# Needed for definitions blocked by compat macros +if (SOLARIS) + list(APPEND SUPPORTED_COMPILER_FLAGS "-D__STDC_WANT_LIB_EXT1__") + list(APPEND SUPPORTED_COMPILER_FLAGS "-D__EXTENSIONS__") +endif() + set(DEFAULT_C_COMPILE_FLAGS ${SUPPORTED_COMPILER_FLAGS} CACHE INTERNAL "Default C Compiler Flags" FORCE) set(DEFAULT_LINK_FLAGS ${SUPPORTED_LINKER_FLAGS} CACHE INTERNAL "Default C Linker Flags" FORCE) diff --git a/src/channels.c b/src/channels.c index a670d895..7b3352de 100644 --- a/src/channels.c +++ b/src/channels.c @@ -29,6 +29,7 @@ #include <errno.h> #include <time.h> #include <stdbool.h> +#include <string.h> #ifndef _WIN32 #include <netinet/in.h> diff --git a/src/dh.c b/src/dh.c index 13b8e03d..858fe557 100644 --- a/src/dh.c +++ b/src/dh.c @@ -25,6 +25,8 @@ #include "config.h" +#include <string.h> + #include "libssh/priv.h" #include "libssh/crypto.h" #include "libssh/buffer.h" diff --git a/src/misc.c b/src/misc.c index affb3eb4..1d45c487 100644 --- a/src/misc.c +++ b/src/misc.c @@ -44,6 +44,7 @@ #include <sys/types.h> #include <ctype.h> #include <time.h> +#include <string.h> #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif /* HAVE_SYS_TIME_H */ -- 2.15.2
Archive administrator: postmaster@lists.cynapses.org