This is an archive of the discontinued LLVM Phabricator instance.

Simplify handling of SHF_LINK_ORDER
ClosedPublic

Authored by rafael on Nov 18 2016, 10:31 AM.

Details

Reviewers
ruiu
peter.smith
Summary

It seems a lot simpler to just sort the sections and let the relocations do the rest.

Diff Detail

Event Timeline

rafael retitled this revision from to Simplify handling of SHF_LINK_ORDER.
rafael updated this object.
rafael added reviewers: ruiu, peter.smith.
rafael added a subscriber: llvm-commits.
ruiu edited edge metadata.Nov 18 2016, 10:36 AM

I'm fine as long as Peter is OK with this.

peter.smith accepted this revision.Nov 18 2016, 11:03 AM
peter.smith edited edge metadata.

Looks good to me. The earlier we can do the re-ordering the better.

I'm currently trying to investigate some test failures in libcxxabi, libcxx using libunwind to do with ARM exceptions. I've got 6 failures in libcxxabi and 44 failures in libcxx when I run it with lld on ARM [*]. I'll run this past the tests on Monday (getting too late in the evening for me to function properly). If I turn up any extra problems I'll let you know.

  • Only difference I can find between ld.bfd and lld is that ld.bfd (and gold) generate a .cantunwind entry for sections that don't have a .ARM.exidx entry.
This revision is now accepted and ready to land.Nov 18 2016, 11:03 AM

I ran the libcxx and libcxxabi test suites without any problems before and after this change, which is good news. I found out that the test failures were caused by libunwind depending on ld.bfd putting a sentinel EXIDX_CANTUNWIND as the last element of the table and have raised PR31091 to cover.

espindola closed this revision.Mar 14 2018, 4:36 PM
espindola added a subscriber: espindola.

287365