Subject: bug#41242: Port feature/native-comp to Windows - Determine the emacs root dir...

From: Eli Zaretskii <[email-masked]>
Date: Sat, 30 May 2020 19:29:20 +0300

> From: Nicolas Bértolo <[email-masked]>
> Date: Sat, 30 May 2020 10:23:55 -0300
> Cc: [email-masked]
> 
> - Commit `f5dceed09a8234548d5b3acb76d443569533cab9` "* lisp/loadup.el: Use new
>   'native-comp-available-p'." causes load_gccjit_if_necessary() to be called in
>   temacs. This didn't work because because term/w32-win.el had not been loaded
>   yet. In particular, we need `dynamic-library-alist` to be defined to know the
>   name of the libgccjit DLL. I have defined this in syms_of_emacs(). This
>   definition should be active only while dumping.

If this is only for dumping, then please make sure it has the proper
condition to be executed only at dump time.

> - This last bug is kinda confusing. I'm not sure about my diagnosis. The list
>   `delayed_comp_unit_disposal_list` has nodes allocated with xmalloc(). It seems
>   that these blocks allocated with xmalloc() get GC'd or they get corrupted
>   somehow and thus they don't survive until Emacs is about to close, which is
>   when we need the list. I solved it by allocating the data and nodes with
>   HeapAlloc().

I don't understand: the malloc implementation in the Windows build
calls HeapAlloc, so I see no reason why the latter should work while
the former doesn't.  There's some other factor at work here.

In any case, it's a definite no-no to call Windows specific APIs in a
general-purpose source file, so this patch as is cannot be acceptable.

Thanks.