This is an archive of the discontinued LLVM Phabricator instance.

[ELF/AArch64] Simplify AArch64 isRelRelative
ClosedPublic

Authored by zatrazz on Mar 21 2016, 2:17 PM.

Details

Reviewers
ruiu
rafael
Summary

This patch simplifies the isRelRelative for AArch64 to just handle the
cases where it is not relative, instead of list all the relocations
that is. It also adds more testing for shared objects creation.

This patch is based upon http://reviews.llvm.org/D18330

Diff Detail

Event Timeline

zatrazz updated this revision to Diff 51226.Mar 21 2016, 2:17 PM
zatrazz retitled this revision from to [ELF/AArch64] Simplify AArch64 isRelRelative.
zatrazz updated this object.
zatrazz added reviewers: ruiu, rafael.
zatrazz set the repository for this revision to rL LLVM.
zatrazz added a project: lld.
zatrazz added subscribers: llvm-commits, emaste, grimar.
yinma added a subscriber: yinma.Mar 21 2016, 3:08 PM
rafael added inline comments.Mar 23 2016, 2:14 PM
ELF/Target.cpp
1235

A relocation being relative or not is not a property of the command line.

zatrazz updated this revision to Diff 51481.Mar 23 2016, 3:28 PM
zatrazz removed rL LLVM as the repository for this revision.

Indeed my first analysis was wrong (isRelRelative should not rely on
command configuration). This patch address it and add the missing
relRelative relocations I found on both bootstrap and running the
testsuite.

rafael accepted this revision.Mar 24 2016, 6:28 AM
rafael edited edge metadata.

LGTM.

Thanks.

This revision is now accepted and ready to land.Mar 24 2016, 6:28 AM
grimar added inline comments.Mar 24 2016, 7:18 AM
test/ELF/aarch64-relative.s
24

If you change almost the whole testcase then I would ask you to fix formating here. That looks wierd now, too many spaces are in front I think.
That is a minor of course.

BTW, I think R_AARCH64_ADR_GOT_PAGE should also be in the list.

It is OK if that is done as a followup patch.

zatrazz closed this revision.Mar 24 2016, 12:17 PM