On 16/09/2026 09:49, Evgeny Karpov wrote:
On Tue, 07 Jul 2026, Chandru Kumaresan wrote:
On AArch64, the autoload INIT_WRAPPER passes func_info* via x30 ("mov
x0, x30"). This works for the first init stage (std_dll_init), reached
by the trampoline's "blr". It breaks for a chained second init, because
dll_chain reaches it via "br x1" without updating x30.
A more general question, could the autoload implementation be replaced by delay
loaded DLLs?
In theory, yes.
(autoload.cc dates back into the previous millennium, when hand-rolling
your own solution to this problem was the only option)
In practice, I'm not sure what the state of the 'dlltool -y'
implementation for aarch64 is, and I think there'd be some work involved
in mapping all the various ways of handling a missing function we have
onto __delayLoadHelper2().
Patches to that end are certainly welcome. :)