]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix loading of libgccjit.dll while dumping in Windows.
authorNicolás Bértolo <nicolasbertolo@gmail.com>
Sat, 30 May 2020 00:08:37 +0000 (21:08 -0300)
committerAndrea Corallo <akrl@sdf.org>
Sun, 31 May 2020 08:51:05 +0000 (09:51 +0100)
loadup.el calls `native-comp-available-p', that calls
load_gccjit_if_necessary() in Windows. That function tries to load
libgccjit using the mappings defined in `dynamic-library-alist'. That
mapping is filled by term/w32-win.el, but that file may be loaded too
late.

* src/emacs.c (syms_of_emacs): Add libgccjit to the
`dynamic-library-alist' used when starting to dump so
`native-comp-available-p' always works in Windows.

src/emacs.c

index cd4f7a0b28644ad8f4b417d4ce1df193132f456a..8ecf9b4aebac1d21387d7df960d0828fc56506f4 100644 (file)
@@ -3052,7 +3052,18 @@ because they do not depend on external libraries and are always available.
 
 Also note that this is not a generic facility for accessing external
 libraries; only those already known by Emacs will be loaded.  */);
+#ifdef WINDOWSNT
+  /* We may need to load libgccjit when dumping before term/w32-win.el
+     defines `dynamic-library-alist`. This will fail if that variable
+     is empty, so add libgccjit.dll to it.  */
+  if (will_dump_p ())
+    Vdynamic_library_alist = list1 (list2 (Qgccjit,
+                                           build_string ("libgccjit.dll")));
+  else
+    Vdynamic_library_alist = Qnil;
+#else
   Vdynamic_library_alist = Qnil;
+#endif
   Fput (intern_c_string ("dynamic-library-alist"), Qrisky_local_variable, Qt);
 
 #ifdef WINDOWSNT