This is an archive of the discontinued LLVM Phabricator instance.

Add AArch64 relocation types
ClosedPublic

Authored by stewartd on Aug 4 2014, 7:53 AM.

Details

Summary

Adds some needed relocation types for AArch64

Diff Detail

Event Timeline

stewartd updated this revision to Diff 12161.Aug 4 2014, 7:53 AM
stewartd retitled this revision from to Add AArch64 relocation types.
stewartd updated this object.
stewartd edited the test plan for this revision. (Show Details)
stewartd added a subscriber: Unknown Object (MLST).
rengolin set the repository for this revision to rL LLVM.
rengolin added a project: deleted.
rengolin accepted this revision.Aug 5 2014, 1:48 AM
rengolin edited edge metadata.

Hi Daniel,

Tim, this is due to the implementation of AArch64 support in LLD (D4778). Is there any kinds of tests that should be done, or would you require the back-end to emit them or error out?

Otherwise, LGTM.

cheers,
--renato

This revision is now accepted and ready to land.Aug 5 2014, 1:48 AM
t.p.northover edited edge metadata.Aug 5 2014, 3:04 AM

Tim, this is due to the implementation of AArch64 support in LLD (D4778). Is there any kinds of tests that should be done, or would you require the back-end to emit them or error out?

It'd be good to make sure llvm-objdump makes use of them (which would
require a little extra code I think but allow testing after that).

Cheers.

Tim.

I don't quite know what the next step is on this one. I don't have commit rights and I'm also not sure how to ensure llvm-objdump makes use of the added relocation types.

stewartd updated this revision to Diff 12336.Aug 10 2014, 10:15 AM
stewartd edited edge metadata.

Added the new relocation types to several other files that needed them, including a test file.

You also need to add the new relocations to the Input/relocs.obj.elf-aarch64, which I have no idea how to do it. :)

Running the make check will point you to the errors.

Yeah... neither do I! Adding Nico Rieck who shows up on the git blame.

I think that's what relocs.py is for, though for some reason it doesn't automatically generate the AArch64 file at the moment.

Tim.

Right. Would that mean that, even if I run it locally and it passes, all the bots will start failing until their admins run it manually?

I don't think so. It looks like you run reloc.py once and then commit the changed binaries. Unfortunately when I did it, a couple of unrelated x86 object files also changed, so it may not have been run recently.

I'll check what's going on there and commit a separate, pure "run reloc.py & update tests" change. Then we should be able to commit this as an isolated AArch64-only change.

Cheers.

Tim.

OK, I've committed r215350 which should make this update a clean AArch64 change. I think one of us could quite easily make that minor change for Daniel as we commit. Are you otherwise happy with the patch if I do it, Renato?

Cheers.

Tim.

Hi Tim, thanks for the extra work. Please, be my guest and push it. :)

cheers,
--renato

t.p.northover accepted this revision.Aug 11 2014, 3:19 AM
t.p.northover edited edge metadata.

Thanks Stephen and Renato. It should be committed as r215352 now.

Tim.

mcrosier closed this revision.Aug 11 2014, 5:29 AM

Committed in r215352.

Thanks Tim and Renato for fixing this!