remove cruft for libc struct accessor function and broken visibility
authorRich Felker <dalias@aerifal.cx>
Wed, 22 Apr 2015 06:21:45 +0000 (02:21 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 22 Apr 2015 06:21:45 +0000 (02:21 -0400)
these were hacks to work around toolchains that could not properly
optimize PIC accesses based on visibility and would generate GOT
lookups even for hidden data, which broke the old dynamic linker.
since commit f3ddd173806fd5c60b3f034528ca24542aecc5b9 it no longer
matters; the dynamic linker does not assume accessibility of this data
until stage 3.

src/internal/libc.h
src/multibyte/internal.c

index 79d53fc8f550457008a0dbaba18a6c616b9e4e2b..00d1b41acc03d13f57e3ba8ed828b43173477605 100644 (file)
@@ -34,12 +34,7 @@ extern size_t __hwcap;
 #define PAGE_SIZE libc.page_size
 #endif
 
-#if !defined(__PIC__) || (100*__GNUC__+__GNUC_MINOR__ >= 303 && !defined(__PCC__))
-
 #ifdef __PIC__
-#if __GNUC__ < 4
-#define BROKEN_VISIBILITY 1
-#endif
 #define ATTR_LIBC_VISIBILITY __attribute__((visibility("hidden")))
 #else
 #define ATTR_LIBC_VISIBILITY
@@ -48,15 +43,6 @@ extern size_t __hwcap;
 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())
-
-#endif
-
 
 /* Designed to avoid any overhead in non-threaded processes */
 void __lock(volatile int *) ATTR_LIBC_VISIBILITY;
index 1813b266c75d29e19324d97512fbe2168c856f5a..bbdc4159a8aa51d2b04108338023cf60e3e95f81 100644 (file)
@@ -30,7 +30,3 @@ const uint32_t bittab[] = {
        E(0x8),E(0x9),E(0xa),E(0xb),E(0xc),E(0xd),E(0xe),E(0xf),
        F(0x0),F(0x1),F(0x2),F(0x3),F(0x4)
 };
-
-#ifdef BROKEN_VISIBILITY
-__asm__(".hidden __fsmu8");
-#endif