This is an archive of the discontinued LLVM Phabricator instance.

[lld][COFF] Provide unwinding information for Chunk injected by /delayloaded
ClosedPublic

Authored by serge-sans-paille on Jan 13 2023, 7:05 AM.

Details

Summary

For each symbol in a /delayloaded library, lld injects a small piece of
code to handle the symbol lazy loading. This code doesn't have unwind
information, which may be troublesome.

Provide these information for AMD64.

Thanks to Yannis Juglaret <yjuglaret@mozilla.com> for contributing the
unwinding info and for his support while crafting this patch.

Fix #59639

Diff Detail

Event Timeline

Herald added a project: Restricted Project. · View Herald TranscriptJan 13 2023, 7:05 AM
serge-sans-paille requested review of this revision.Jan 13 2023, 7:05 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 13 2023, 7:05 AM

Add alignment requirements

Fix and document alignment requirements

mstorsjo accepted this revision.Jan 16 2023, 2:51 AM
mstorsjo added reviewers: hans, thakis, aganea, thieta.

LGTM, thanks!

lld/COFF/DLL.cpp
802

Maybe it'd be good to leave a todo comment here, to implement this for the other architectures too?

This revision is now accepted and ready to land.Jan 16 2023, 2:51 AM