Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Fri May 27 04:57:14 PDT 2016

On 27 May 2016 at 04:11, Keith Walker <Keith.Walker at arm.com> wrote:
> Rafael,
> The use of a GOT is not something that is supported for all addressing/linking models;  the "Base Platform ABI for the ARM Architecture" sections 2.4/2.5 mentions some alternative addressing/linking models (that specification is for ARM not AArch64 .... but the concepts are still valid for AArch64).    Obviously testing the change on a platform which is based on a SVr4 linking model which uses a GOT is going to work.
> I can confirm that armlink when linking for bare-metal does not allow a GOT as it is not part of the linking model for bare-metal that it supports.
> Would the generation of GOT entries work for a Windows style addressing/linking model (if we had an AArch64 Windows)?

Windows has explicit import/export and no weak symbols.

> I am therefore thinking that the use of MO_CONSTPOOL or GOT should be a selectable option depending on what addressing/linking model you are generating code for (i.e. it is not something special to armlink but rather the addressing/linking model).

I don't think so. It is a really odd restriction to not support got
entries in some cases. I am actually tempted to ask for this to be a
local change, after all, not having this makes for better results for
other linkers and easier to maintain code for us.

A rebased patch is attached. Tim, what do you think? If we have to
keep it I will move it behind a flag.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Delete-AArch64II-MO_CONSTPOOL.patch
Type: text/x-patch
Size: 9216 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160527/566edfb1/attachment.bin>

More information about the llvm-commits mailing list