diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2017-03-10 23:35:30 (GMT) |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2017-03-10 23:35:30 (GMT) |
commit | 7aeecbff7178d72da1786ed30817fe8071c4d9ea (patch) | |
tree | 53d209287c8cd547b4f78162cd84b986ea95dcb3 /lib/lz4.h | |
parent | 93b3b08ef62567be3585a3cd6fc1147ed0ff7045 (diff) | |
download | lz4-7aeecbff7178d72da1786ed30817fe8071c4d9ea.zip lz4-7aeecbff7178d72da1786ed30817fe8071c4d9ea.tar.gz lz4-7aeecbff7178d72da1786ed30817fe8071c4d9ea.tar.bz2 |
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.
Diffstat (limited to 'lib/lz4.h')
-rw-r--r-- | lib/lz4.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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 |