ARM long branch stubs: PLT32 and JUMP24 relocations (PR9743)

Christophe LYON christophe.lyon@st.com
Fri Apr 17 13:56:00 GMT 2009


Hi all,

Here is an updated patch, to cope with all the recently added patches.

Christophe.


On 06.03.2009 16:55, Christophe LYON wrote:
> Hi all,
> 
> The attached patch should enable closing PR9743.
> This issue has to do with the previously lacking support for long branch 
> stubs towards PLT entries, which has been partially addressed by my 
> previous patch (http://sourceware.org/ml/binutils/2009-02/msg00359.html).
> 
> Then, we still lacked support for PLT32 and JUMP24 relocations, which I 
> have added here. I did not change R_ARM_PC24 handling because during my 
> tests I had no occurrence of it and I didn't want to break something 
> without proper testing. I can give a look at it later it needed.
> 
> Roughly speaking, the fix consists in moving the handling of these 
> relocations to a common place with the *CALL* ones already handled by 
> the long branch support code.
> 
> There is one special case: as these relocs don't apply to 'bl' 
> instructions, we can't convert these branches into branch + mode switch, 
> so this case has to be taken into account when selecting the appropriate 
> stub.
> 
> Regarding the testsuite, I had to update:
> * arm-call.d: a new padding word is inserted before the stubs, so 
> several addresses had to be updated.
> * arm-pic-veneer.d: the stub code is now common with several other 
> cases, so I chose to update this one rather than several others (add 
> ip,ip,pc vs add ip,pc,ip)
> * thumb2-b-interwork.d: the stub is no longer in a separate section, and 
> no longer has a xxx_change_to_arm symbol.
> 
> 
> Christophe.
> 

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr9743.changelog
URL: <https://sourceware.org/pipermail/binutils/attachments/20090417/1c776fb3/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr9743.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20090417/1c776fb3/attachment-0001.ksh>


More information about the Binutils mailing list