From 0452ebdfcd6170c595ef791992bbeee2a6473352 Mon Sep 17 00:00:00 2001 From: Mathieu Malaterre Date: Mon, 10 Sep 2012 12:38:22 +0000 Subject: [PATCH] [trunk] Use new gcc feature to actually hide exported symbols Right now we are only using the Windows/POSIX compatibility layer. This means that we have only been marking explicitely which symbols to export. What this also means is that for one to explicitely remove non-explicitely marked symbols, one has to set -fvisibility=hidden as CFLAGS --- libopenjpeg/openjpeg.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libopenjpeg/openjpeg.h b/libopenjpeg/openjpeg.h index 6e56f51a..de1576ff 100644 --- a/libopenjpeg/openjpeg.h +++ b/libopenjpeg/openjpeg.h @@ -53,7 +53,14 @@ #endif #if defined(OPJ_STATIC) || !defined(_WIN32) +/* http://gcc.gnu.org/wiki/Visibility */ +#if __GNUC__ >= 4 +#define OPJ_API __attribute__ ((visibility ("default"))) +#define OPJ_LOCAL __attribute__ ((visibility ("hidden"))) +#else #define OPJ_API +#define OPJ_LOCAL +#endif #define OPJ_CALLCONV #else #define OPJ_CALLCONV __stdcall