]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix windows NT handling for [...]_add_driver_options
authorAndreas Fuchs <asf@boinkor.net>
Wed, 19 Aug 2020 12:16:50 +0000 (08:16 -0400)
committerAndrea Corallo <akrl@sdf.org>
Wed, 26 Aug 2020 19:25:45 +0000 (21:25 +0200)
* Instead of conditionalizing on the wrong preprocessor flag, now use
  the right one: LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option

* Also perform the driver-option-adding step on win NT, but only if
  the function is non-NULL.

* Make the function declaration for add_driver_options non-old-style.

src/comp.c

index 97a566587075c76bd23266041be54a24830fc427..03409cba0cdf8694b415cfc0254f99e82789de25 100644 (file)
@@ -4123,23 +4123,34 @@ DEFUN ("comp--release-ctxt", Fcomp__release_ctxt, Scomp__release_ctxt,
 }
 
 static void
-add_driver_options ()
+add_driver_options (void)
 {
   Lisp_Object options = Fsymbol_value (Qcomp_native_driver_options);
 
-#ifdef LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option
-  while (CONSP (options))
+#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
+  || defined (WINDOWSNT)
+#pragma GCC diagnostic ignored "-Waddress"
+  if (gcc_jit_context_add_driver_option)
     {
-      gcc_jit_context_add_driver_option (comp.ctxt, SSDATA (XCAR (options)));
-      options = XCDR (options);
+      while (CONSP (options))
+        {
+          gcc_jit_context_add_driver_option (comp.ctxt,
+                                            SSDATA (XCAR (options)));
+          options = XCDR (options);
+        }
+
+      return;
     }
-#else
+#pragma GCC diagnostic pop
+#endif
   if (CONSP (options))
     {
       xsignal1 (Qnative_compiler_error,
-                build_string ("Customizing native compiler options via `comp-native-driver-options' is only available on libgccjit version 9 and above."));
+                build_string ("Customizing native compiler options"
+                              " via `comp-native-driver-options' is"
+                              " only available on libgccjit version 9"
+                              " and above."));
     }
-#endif
 }
 
 static void