This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch for arm-linux pic handling


This patch fixes two related (though opposite) problems in the handling
of PIC global data on arm-linux.

Firstly, a symbol marked with ENCODED_SHORT_CALL_ATTR_P should not be a
candidate for GOTOFF relocation.  This signifies that the function was
defined locally in this compilation unit, but pointers to such functions
may still need refer to the PLT entry for pointer comparisons to work
out right.

Secondly, references to local symbols used for string constants (.LC0
and similar) _do_ want to be addressed with GOTOFF.  This isn't a
correctness issue, but the extra indirection is bad for performance and
causes substantial GOT bloat (about a 400% size increase in the case of
glibc).

p.

Attachment: pic.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]