http://sourceware.org/bugzilla/show_bug.cgi?id=13320
Bug #: 13320 Summary: Please support thumb entry points in PLT instead of using (more or less randomly located) stubs Product: binutils Version: 2.23 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gold AssignedTo: i...@airs.com ReportedBy: mh-sourcew...@glandium.org CC: ccout...@google.com Classification: Unclassified My original problem is the following: I've been trying to pack hot startup functions in Firefox Android builds, which are essentially Thumb. The PLT entries that gold generates are however ARM, and jumping from the Firefox code to PLT entries requires stubs that do the interwork. Unfortunately, these are anonymous (no corresponding symbol in the .text section), which makes it non-obvious where they come from (I should probably file a separate bug for that), and more importantly, they are located are arbitrary places, which clashes with packing hot startup functions. However, GNU ld doesn't generate such stubs, and in fact has PLT entries that start as Thumb, and switch to ARM. They are basically 4 bytes longer than the PLT entries gold generates, but on the other hand, they save 12 bytes from the corresponding stub. This is what the GNU ld PLT entries look like: 278: 4778 bx pc 27a: 46c0 nop ; (mov r8, r8) 27c: e28fc600 add ip, pc, #0 280: e28cca08 add ip, ip, #32768 ; 0x8000 284: e5bcf0b4 ldr pc, [ip, #180]! ; 0xb4 The ARM part is just the same as the one gold generates. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils