[lld] [LLD][COFF] Move delay IAT into its own .didat section. (PR #137100)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 9 16:00:29 PDT 2025
jeremyd2019 wrote:
I don't understand why the docs are pretty clear about *should* *may* and *recommended* but MSVC doesn't actually implement what the docs say. Maybe I've read too many RFCs and I'm putting too much weight on the word *should* 😉
> The delay load IAT *should* be in its own section and the image *should* set the IMAGE_GUARD_CF_PROTECT_DELAYLOAD_IAT GuardFlags bit.
> For backwards compatibility with older pre-CFG operating systems, tools *may* enable the option to move the delay load IAT into its own section (canonically “.didat”), protected as read/write in the image headers, and additionally set the IMAGE_GUARD_CF_DELAYLOAD_IAT_IN_ITS_OWN_SECTION flag... The option to place the delay load IAT in its own section may not be required if you do not care about running an image on operating systems that predate CFG support, but tools *should* make that decision based on the minimum operating system support that an image needs.
> It is *recommended* that protected delay load be enabled by default if CFG is enabled. Images that run on older operating system versions and that use the operating system’s native delay load support, as noted, *may* use the delay load IAT in its own section support for backwards compatibility.
(emphasis added)
https://github.com/llvm/llvm-project/pull/137100
More information about the llvm-commits
mailing list