diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/internal/libc.c | 2 | ||||
| -rw-r--r-- | src/internal/libc.h | 15 | ||||
| -rw-r--r-- | src/multibyte/internal.c | 2 | ||||
| -rw-r--r-- | src/multibyte/internal.h | 8 | 
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      */  | 
