about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/internal/libc.c2
-rw-r--r--src/internal/libc.h15
-rw-r--r--src/multibyte/internal.c2
-rw-r--r--src/multibyte/internal.h8
4 files changed, 15 insertions, 12 deletions
diff --git a/src/internal/libc.c b/src/internal/libc.c
index 5f12e295..59d302d4 100644
--- a/src/internal/libc.c
+++ b/src/internal/libc.c
@@ -7,5 +7,5 @@ struct __libc *__libc_loc()
 	return &__libc;
 }
 #else
-struct __libc __libc;
+struct __libc __libc ATTR_LIBC_VISIBILITY;
 #endif
diff --git a/src/internal/libc.h b/src/internal/libc.h
index d985902c..45d5c9e7 100644
--- a/src/internal/libc.h
+++ b/src/internal/libc.h
@@ -19,16 +19,21 @@ struct __libc {
 };
 
 
-#if 100*__GNUC__+__GNUC_MINOR__ >= 303 || defined(__PCC__) || defined(__TINYC__)
-extern struct __libc __libc __attribute__((visibility("hidden")));
-#define libc __libc
+#if !defined(__PIC__) || 100*__GNUC__+__GNUC_MINOR__ >= 303 || defined(__PCC__) || defined(__TINYC__)
 
-#elif !defined(__PIC__)
-extern struct __libc __libc;
+#ifdef __PIC__
+#define ATTR_LIBC_VISIBILITY __attribute__((visibility("hidden"))) 
+#else
+#define ATTR_LIBC_VISIBILITY
+#endif
+
+extern struct __libc __libc ATTR_LIBC_VISIBILITY;
 #define libc __libc
 
 #else
+
 #define USE_LIBC_ACCESSOR
+#define ATTR_LIBC_VISIBILITY
 extern struct __libc *__libc_loc(void) __attribute__((const));
 #define libc (*__libc_loc())
 
diff --git a/src/multibyte/internal.c b/src/multibyte/internal.c
index 11b9818f..1a4ddc3f 100644
--- a/src/multibyte/internal.c
+++ b/src/multibyte/internal.c
@@ -23,7 +23,7 @@
              | ( R(0x80,0xc0) >> 12 ) \
              | x )
 
-const uint32_t bittab[] = {
+const uint32_t bittab[] ATTR_LIBC_VISIBILITY = {
 	              C(0x2),C(0x3),C(0x4),C(0x5),C(0x6),C(0x7),
 	C(0x8),C(0x9),C(0xa),C(0xb),C(0xc),C(0xd),C(0xe),C(0xf),
 	D(0x0),D(0x1),D(0x2),D(0x3),D(0x4),D(0x5),D(0x6),D(0x7),
diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h
index df47331e..cd1196ba 100644
--- a/src/multibyte/internal.h
+++ b/src/multibyte/internal.h
@@ -6,11 +6,9 @@
 
 #define bittab __fsmu8
 
-#if 100*__GNUC__+__GNUC_MINOR__ >= 303 || defined(__PCC__) || defined(__TINYC__)
-extern const uint32_t bittab[] __attribute__((visibility("hidden")));
-#else
-extern const uint32_t bittab[];
-#endif
+#include "libc.h"
+
+extern const uint32_t bittab[] ATTR_LIBC_VISIBILITY;
 
 /* Upper 6 state bits are a negative integer offset to bound-check next byte */
 /*    equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f      */