|
From: | mcree at orcon dot net.nz |
Subject: | [Bug ld/12608] TLS relocations issues on alpha |
Date: | Sat, 2 Apr 2011 00:24:28 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=12608 --- Comment #13 from Michael Cree <mcree at orcon dot net.nz> 2011-04-02 00:24:12 UTC --- Created attachment 5641 --> http://sourceware.org/bugzilla/attachment.cgi?id=5641 Patch to fix relax tls Patch to fix this issue. On entry to elf64_alpha_relax_tls_get_addr() the instructions are already re-ordered to be in "canonical" order rather than actual execution order so that when pos[0] is assigned it contains the address to tlsldm. However pos[0] and pos[1] are then swapped if the pos[1] is the instruction before pos[0] to get them in memory address order. This means that by the time the register to pass to rduniq is calculated pos[0] may not contain the tlsldm instruction. The patch shifts the calculation of the register before the switch of pos[0] and pos[1]. It would be good if someone more knowledgeable about binutils than I would verify that my analysis is correct and that the fix does not introduce any further problems. -- 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.
[Prev in Thread] | Current Thread | [Next in Thread] |