From: Andrea Corallo Date: Sun, 7 Mar 2021 20:56:06 +0000 (+0100) Subject: * Handle `comp-native-driver-options' both as file-local both as global X-Git-Tag: emacs-28.0.90~2727^2~85 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=15aa239ba058ef02544e5dfaf066bd985d9b2f4f;p=emacs.git * Handle `comp-native-driver-options' both as file-local both as global * src/comp.c (add_driver_options): Throw an error if `comp-native-driver-options' is set globally but 'gcc_jit_context_add_driver_option' is not available, ignore for the file-local case. --- 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,