[llvm-commits] PATCH: ARM_TARGET1 relocation for C++ global constructors

James Molloy james.molloy at arm.com
Wed Jan 11 02:02:25 PST 2012


Hi Jim,

Patch attached - it special cases Darwin to use VK_None, which is the
default.

Cheers,

James

-----Original Message-----
From: Jim Grosbach [mailto:grosbach at apple.com] 
Sent: 10 January 2012 23:37
To: James Molloy
Cc: Evan Cheng; llvm-commits at cs.uiuc.edu LLVM; Owen Anderson; Kevin Enderby
Subject: Re: [llvm-commits] PATCH: ARM_TARGET1 relocation for C++ global
constructors

Hi James,

It would really help to see the rest of it, if it's not too much trouble. Is
it really only 5 lines? I wouldn't expect it to be huge, but a bit more than
that to declare the variant kind, handle dumping it, and mapping it to the
appropriate relocation type. Perhaps not, though, which is pretty cool. iOS
does want the normal relocation, yes.

-Jim



On Jan 10, 2012, at 2:37 PM, James Molloy wrote:

> Hi Jim,
> 
> Apologies, I'd accidentally missed off about 5 lines from the patch, which
essentially just adds VK_ARM_TARGET1 and dumping facilities thereof. I'd run
the diff against the wrong revision of our downstream copy.
> 
> Are you able to review the patch without those? I can get a fixed version
in the morning (0830 GMT). I know I missed out Darwin - I'm considering
adding a conditional on iOS to create a standard R_ABS relocation for darwin
as is currently done - would this be correct?
> 
> I'm not a darwin person :/
> 
> Cheers
> 
> James
> ________________________________________
> From: Jim Grosbach [grosbach at apple.com]
> Sent: 10 January 2012 21:52
> To: James Molloy
> Cc: Evan Cheng; llvm-commits at cs.uiuc.edu LLVM; Owen Anderson; Kevin
Enderby
> Subject: Re: [llvm-commits] PATCH: ARM_TARGET1 relocation for C++ global
constructors
> 
> Hi James,
> 
> There seems to be something missing from the patch? I don't see any
definition for VK_ARM_TARGET1, any handling for mapping the variant kind to
a relocation type or any of that sort of thing.
> 
> -Jim
> 
> On Jan 4, 2012, at 11:12 PM, Evan Cheng wrote:
> 
>> Has this been reviewed?
>> 
>> I'm not sure if this patch is correct for all platforms, e.g. iOS. Jim,
Kevin, and Owen, do you guys know?
>> 
>> Evan
>> 
>> On Dec 21, 2011, at 7:12 AM, James Molloy wrote:
>> 
>>> Hi,
>>> 
>>> Attached is a patch to cause the relocations for C++ global/static
constructor thunks to be outputted properly on ARM. The ABI states that
these thunks should have an R_ARM_TARGET1 relocation type applied to them
for portability reasons. Currently they're emitted as normal global
variables so get an R_ARM_ABS32.
>>> 
>>> I've implemented this by creating a new overridable hook,
"EmitXXStructor()", in the AsmPrinter. For all targets this defaults to
EmitGlobalConstant as usual, but ARM overrides it to emit a constant with
this specific relocation type.
>>> 
>>> Am I OK to commit?
>>> 
>>> Cheers,
>>> 
>>> James
>>> <reloc_arm_target1.patch>_______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 
> 
> 
> 
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended
recipient, please notify the sender immediately and do not disclose the
contents to any other person, use it for any purpose, or store or copy the
information in any medium.  Thank you.
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: target1.patch
Type: application/octet-stream
Size: 5703 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120111/924c8d32/attachment.obj>


More information about the llvm-commits mailing list