提交 36be5284 编写于 作者: R Rich Felker

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.
上级 185a9770
...@@ -21,7 +21,7 @@ struct __libc { ...@@ -21,7 +21,7 @@ struct __libc {
extern size_t __hwcap; 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__ #ifdef __PIC__
#if __GNUC__ < 4 #if __GNUC__ < 4
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册