From: Dmitry V. Levin Date: Fri, 10 Mar 2017 23:35:30 +0000 (+0000) Subject: Explicitly set visibility of public API functions when gcc is used X-Git-Tag: upstream/1.9.3~11^2~107^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7aeecbff7178d72da1786ed30817fe8071c4d9ea;p=platform%2Fupstream%2Flz4.git Explicitly set visibility of public API functions when gcc is used Windows builds already limit exporting of functions to those marked with LZ4LIB_API tag. The same behaviour could be achieved on other platforms when a relatively fresh gcc is used. This change assigns public visibility to all symbols marked with LZ4LIB_API tag. When the library is built in -fvisibility=hidden mode, only these marked symbols will be exported. --- diff --git a/lib/lz4.h b/lib/lz4.h index bebe761..b0537fc 100644 --- a/lib/lz4.h +++ b/lib/lz4.h @@ -72,11 +72,15 @@ extern "C" { /* * LZ4_DLL_EXPORT : * Enable exporting of functions when building a Windows DLL +* LZ4LIB_API : +* Control library symbols visibility. */ #if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1) # define LZ4LIB_API __declspec(dllexport) #elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1) # define LZ4LIB_API __declspec(dllimport) /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#elif defined(__GNUC__) && (__GNUC__ >= 4) +# define LZ4LIB_API __attribute__ ((__visibility__ ("default"))) #else # define LZ4LIB_API #endif diff --git a/lib/lz4frame.h b/lib/lz4frame.h index 9d9fe89..f33eee1 100644 --- a/lib/lz4frame.h +++ b/lib/lz4frame.h @@ -63,11 +63,15 @@ extern "C" { /* * LZ4_DLL_EXPORT : * Enable exporting of functions when building a Windows DLL +* LZ4FLIB_API : +* Control library symbols visibility. */ #if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1) # define LZ4FLIB_API __declspec(dllexport) #elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1) # define LZ4FLIB_API __declspec(dllimport) +#elif defined(__GNUC__) && (__GNUC__ >= 4) +# define LZ4FLIB_API __attribute__ ((__visibility__ ("default"))) #else # define LZ4FLIB_API #endif