]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
changed : dll : only approved ZSTD symbols are now exposed. All other symbols remain...
authorYann Collet <cyan@fb.com>
Thu, 8 Dec 2016 00:39:34 +0000 (16:39 -0800)
committerYann Collet <cyan@fb.com>
Thu, 8 Dec 2016 00:39:34 +0000 (16:39 -0800)
lib/Makefile
lib/deprecated/zbuff.h
lib/zstd.h

index bf1088d68346f299e728cdfbbf3d254fa1823cc7..44c64b8edcf889f54e40cf9d560ea7fbea9271a0 100644 (file)
@@ -70,7 +70,7 @@ libzstd.a: $(ZSTD_FILES)
        @$(CC) $(FLAGS) -c $^
        @$(AR) $(ARFLAGS) $@ *.o
 
-$(LIBZSTD): LDFLAGS += -shared -fPIC
+$(LIBZSTD): LDFLAGS += -shared -fPIC -fvisibility=hidden
 $(LIBZSTD): $(ZSTD_FILES)
        @echo compiling dynamic library $(LIBVER)
 ifneq (,$(filter Windows%,$(OS)))
index 4956aaaa4cc6537f5fbda477fd1d16bd14fb6273..8296dc64a857ae5f87900d1bb00c4eb78fee6ebd 100644 (file)
@@ -27,20 +27,12 @@ extern "C" {
 *  Dependencies
 ***************************************/
 #include <stddef.h>      /* size_t */
-#include <zstd.h>        /* ZSTD_CStream, ZSTD_DStream */
+#include <zstd.h>        /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */
 
 
 /* ***************************************************************
 *  Compiler specifics
 *****************************************************************/
-/* ZSTD_DLL_EXPORT :
-*  Enable exporting of functions when building a Windows DLL */
-#if defined(_WIN32) && defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
-#  define ZSTDLIB_API __declspec(dllexport)
-#else
-#  define ZSTDLIB_API
-#endif
-
 /* Deprecation warnings */
 /* Should these warnings be a problem,
    it is generally possible to disable them,
@@ -48,17 +40,17 @@ extern "C" {
    or _CRT_SECURE_NO_WARNINGS in Visual.
    Otherwise, it's also possible to define ZBUFF_DISABLE_DEPRECATE_WARNINGS */
 #ifdef ZBUFF_DISABLE_DEPRECATE_WARNINGS
-#  define ZBUFF_DEPRECATED(message)   /* disable deprecation warnings */
+#  define ZBUFF_DEPRECATED(message) ZSTDLIB_API  /* disable deprecation warnings */
 #else
 #  if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__)
-#    define ZBUFF_DEPRECATED(message) __attribute__((deprecated(message)))
+#    define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated(message)))
 #  elif defined(__GNUC__) && (__GNUC__ >= 3)
-#    define ZBUFF_DEPRECATED(message) __attribute__((deprecated))
+#    define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated))
 #  elif defined(_MSC_VER)
-#    define ZBUFF_DEPRECATED(message) __declspec(deprecated(message))
+#    define ZBUFF_DEPRECATED(message) ZSTDLIB_API __declspec(deprecated(message))
 #  else
 #    pragma message("WARNING: You need to implement ZBUFF_DEPRECATED for this compiler")
-#    define ZBUFF_DEPRECATED(message)
+#    define ZBUFF_DEPRECATED(message) ZSTDLIB_API
 #  endif
 #endif /* ZBUFF_DISABLE_DEPRECATE_WARNINGS */
 
index 3989cc3073e29f0d947a1fa4253c6578fe656003..b696d643c3a839fe0f852dffb419135a81f18418 100644 (file)
@@ -18,12 +18,10 @@ extern "C" {
 #include <stddef.h>   /* size_t */
 
 
-/* ======  Export for Windows  ======*/
-/*
-*  ZSTD_DLL_EXPORT :
-*  Enable exporting of functions when building a Windows DLL
-*/
-#if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
+/* =====   ZSTDLIB_API : control library symbols visibility   ===== */
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+#  define ZSTDLIB_API __attribute__ ((visibility ("default")))
+#elif defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
 #  define ZSTDLIB_API __declspec(dllexport)
 #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)
 #  define ZSTDLIB_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.*/