Subject: bug#60996: 29.0.60; Native compile fails to remove temp file for trampoline

From: Eli Zaretskii <[email-masked]>
Date: Thu, 26 Jan 2023 20:38:45 +0200

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Thu, 26 Jan 2023 16:50:59 +0000
> 
> What I've understood from the trace is that `comp--native-compile' is
> trying to delete the trampoline that was just compiled.
> 
> This is not expected in normal conditions so we have to understand why.
> 
> The only case where we might do that AFAIR is when
> `inhibit-automatic-native-compilation' is used.  This was the infamous
> mechanism that was installed by Lars where, if I'm not wrong, we are
> supposed to compile a trampoline, load it, and remove it to pretend we
> didn't compiled anything :x

OK, this seems to be what is happening here, because we compile the
trampoline to a temporary directory.  Otherwise, I don't see why we
would do that, and why we would delete a trampoline we just compiled.

> If (as I understand) in Windows we can't delete a mapped file we have a
> problem more to solve.

Yes.  If this is what happens, then I think we will have to maintain a
list of such trampolines, and delete them just before exiting, after
calling dynlib_close for them.