mirror of
https://github.com/fluencelabs/musl
synced 2025-06-25 12:42:02 +00:00
workaround broken hidden-visibility handling in pcc
with this change, pcc-built musl libc.so seems to work correctly. the problem is that pcc generates GOT lookups for external-linkage symbols even if they are hidden, rather than using GOT-relative addressing. the entire reason we're using hidden visibility on the __libc object is to make it accessible prior to relocations -- not to mention inexpensive to access. unfortunately, the workaround makes it even more expensive on pcc. when the pcc issue is fixed, an appropriate version test should be added so new pcc can use the much more efficient variant.
This commit is contained in:
@ -21,7 +21,7 @@ struct __libc {
|
||||
|
||||
extern size_t __hwcap;
|
||||
|
||||
#if !defined(__PIC__) || 100*__GNUC__+__GNUC_MINOR__ >= 303 || defined(__PCC__) || defined(__TINYC__)
|
||||
#if !defined(__PIC__) || (100*__GNUC__+__GNUC_MINOR__ >= 303 && !defined(__PCC__))
|
||||
|
||||
#ifdef __PIC__
|
||||
#if __GNUC__ < 4
|
||||
|
Reference in New Issue
Block a user