summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/comp.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/comp.c b/src/comp.c
index b68adf31d68..e6f672de254 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4334,9 +4334,9 @@ DEFUN ("comp-native-driver-options-effective-p",
static void
add_driver_options (void)
{
- Lisp_Object options = comp.driver_options;
+ Lisp_Object options = Fsymbol_value (Qcomp_native_driver_options);
-#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
+#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
|| defined (WINDOWSNT)
load_gccjit_if_necessary (true);
if (!NILP (Fcomp_native_driver_options_effective_p ()))
@@ -4347,7 +4347,6 @@ add_driver_options (void)
ENCODE_FILE or
ENCODE_SYSTEM. */
SSDATA (XCAR (options)));
- return;
#endif
if (CONSP (options))
xsignal1 (Qnative_compiler_error,
@@ -4355,6 +4354,20 @@ add_driver_options (void)
" via `comp-native-driver-options' is"
" only available on libgccjit version 9"
" and above."));
+
+ /* Captured `comp-native-driver-options' because file-local. */
+#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
+ || defined (WINDOWSNT)
+ options = comp.driver_options;
+ if (!NILP (Fcomp_native_driver_options_effective_p ()))
+ FOR_EACH_TAIL (options)
+ gcc_jit_context_add_driver_option (comp.ctxt,
+ /* FIXME: Need to encode
+ this, but how? either
+ ENCODE_FILE or
+ ENCODE_SYSTEM. */
+ SSDATA (XCAR (options)));
+#endif
}
DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file,