diff --git a/Source/GSPrivate.h b/Source/GSPrivate.h index faa61bc..24053ad 100644 --- a/Source/GSPrivate.h +++ b/Source/GSPrivate.h @@ -35,8 +35,10 @@ #if ( (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) ) && HAVE_VISIBILITY_ATTRIBUTE ) #define GS_ATTRIB_PRIVATE __attribute__ ((visibility("internal"))) +#define GS_ATTRIB_HIDDEN __attribute__ ((visibility("hidden"))) #else #define GS_ATTRIB_PRIVATE +#define GS_ATTRIB_HIDDEN #endif /* Absolute Gregorian date for NSDate reference date Jan 01 2001 @@ -549,11 +551,14 @@ GSPrivateDispatchInitialize(void) GS_ATTRIB_PRIVATE; /* These functions are used by libdispatch to initialize * NSAutoreleasePool for its worker threads. + * We must *REALLY* define them as hidden instead of internal + * because they are callbacks given to libdispatch which is + * an external module. */ void* -GSPrivateAutoreleasePoolAllocate(void) GS_ATTRIB_PRIVATE; +GSPrivateAutoreleasePoolAllocate(void) GS_ATTRIB_HIDDEN; void -GSPrivateAutoreleasePoolDeallocate(void* param) GS_ATTRIB_PRIVATE; +GSPrivateAutoreleasePoolDeallocate(void* param) GS_ATTRIB_HIDDEN; #endif /* GS_HAVE_LIBDISPATCH_COMPAT */ diff --git a/Source/NSThread.m b/Source/NSThread.m index 8bce09b..8aef9c4 100644 --- a/Source/NSThread.m +++ b/Source/NSThread.m @@ -92,7 +92,7 @@ # define MAIN_PTHREAD_NEEDS_LOAD 1 # define IS_MAIN_PTHREAD pthread_equal(_main_pthread, pthread_self()) /* clang is whining if it's static so make it global internal... */ -__attribute__((visibility("internal"))) pthread_t _main_pthread; +GS_ATTRIB_PRIVATE pthread_t _main_pthread; #endif