This is an archive of the discontinued LLVM Phabricator instance.

[LLD][ARM] Add sh_link field to .ARM.exidx sections for relocatable links
ClosedPublic

Authored by peter.smith on Oct 20 2016, 6:51 AM.

Details

Summary

When doing a relocatable link the .ARM.exidx sections with the SHF_LINK_ORDER flag set need to set the sh_link field to the executable section they describe. We find the appropriate OutputSection by following the sh_link field of the .ARM.exidx InputSections.

Since the changes in D25232 , the getOutputSectionName() function rules make sure that when there are multiple .ARM.exidx InputSections in an OutputSection they all have the same sh_link field.

This change should be sufficient to support ARM exceptions sections in relocatable objects.

Diff Detail

Event Timeline

peter.smith retitled this revision from to [LLD][ARM] Add sh_link field to .ARM.exidx sections for relocatable links.
peter.smith updated this object.
peter.smith added reviewers: ruiu, rafael.
peter.smith added a subscriber: llvm-commits.
ruiu accepted this revision.Oct 20 2016, 12:58 PM
ruiu edited edge metadata.

LGTM

ELF/OutputSections.cpp
923

nit: I'd add {.

This revision is now accepted and ready to land.Oct 20 2016, 12:58 PM
This revision was automatically updated to reflect the committed changes.