From 9b13390ad08c84946386ae395870938daf89b116 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 11 Aug 2009 17:10:00 +0200 Subject: Use gcc visibility attribute to get rid of the map file. --- include/libssh/libssh.h | 54 +++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 20 deletions(-) (limited to 'include/libssh') diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index 6689bea..9a6b9f8 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -22,30 +22,44 @@ #ifndef _LIBSSH_H #define _LIBSSH_H -#ifndef _MSC_VER -#include -#include +#if defined _WIN32 || defined __CYGWIN__ + #ifdef SSH_EXPORTS + #ifdef __GNUC__ + #define LIBSSH_API __attribute__((dllexport)) + #else + #define LIBSSH_API __declspec(dllexport) + #endif + #else + #ifdef __GNUC__ + #define LIBSSH_API __attribute__((dllimport)) + #else + #define LIBSSH_API __declspec(dllimport) + #endif + #endif +#else + #if __GNUC__ >= 4 + #define LIBSSH_API __attribute__((visibility("default"))) + #else + #define LIBSSH_API + #endif +#endif + +#ifdef _MSC_VER + /* Visual Studio hasn't inttypes.h so it doesn't know uint32_t */ + typedef unsigned int uint32_t; + typedef unsigned short uint16_t; + typedef unsigned char uint8_t; + typedef unsigned long long uint64_t; #else /* _MSC_VER */ -//visual studio hasn't inttypes.h so it doesn't know uint32_t -typedef unsigned int uint32_t; -typedef unsigned short uint16_t; -typedef unsigned char uint8_t; -typedef unsigned long long uint64_t; + #include + #include #endif /* _MSC_VER */ #ifdef _WIN32 -#include - -/* export functions */ -# ifdef SSH_EXPORTS -# define LIBSSH_API __declspec(dllexport) -# else -# define LIBSSH_API __declspec(dllimport) -# endif -#else -# include /* for fd_set * */ -# include -# define LIBSSH_API + #include +#else /* _WIN32 */ + #include /* for fd_set * */ + #include #endif /* _WIN32 */ #define SSH_STRINGIFY(s) SSH_TOSTRING(s) -- cgit