[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp dbdc44d 1/2: Allow for `comp-native-driver-options'
From: |
Andrea Corallo |
Subject: |
feature/native-comp dbdc44d 1/2: Allow for `comp-native-driver-options' to work as a file-local variable. |
Date: |
Sun, 7 Mar 2021 14:34:33 -0500 (EST) |
branch: feature/native-comp
commit dbdc44db15ef9daa24d92c59d4e158f3963a172f
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
Allow for `comp-native-driver-options' to work as a file-local variable.
---
lisp/emacs-lisp/bytecomp.el | 5 ++++-
lisp/emacs-lisp/comp.el | 4 ++++
src/comp.c | 4 +++-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 4169b07..3ee8113 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2272,7 +2272,10 @@ With argument ARG, insert value in current buffer after
the form."
(defvar comp-speed)
(push `(comp-speed . ,comp-speed) byte-native-qualities)
(defvar comp-debug)
- (push `(comp-debug . ,comp-debug) byte-native-qualities))
+ (push `(comp-debug . ,comp-debug) byte-native-qualities)
+ (defvar comp-native-driver-options)
+ (push `(comp-native-driver-options . ,comp-native-driver-options)
+ byte-native-qualities))
;; Compile the forms from the input buffer.
(while (progn
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 70e1064..cedbb78 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -712,6 +712,8 @@ Returns ELT."
:documentation "Default speed for this compilation unit.")
(debug comp-debug :type number
:documentation "Default debug level for this compilation unit.")
+ (driver-options comp-native-driver-options :type list
+ :documentation "Options for the GCC driver.")
(top-level-forms () :type list
:documentation "List of spilled top level forms.")
(funcs-h (make-hash-table :test #'equal) :type hash-table
@@ -1298,6 +1300,8 @@ clashes."
byte-native-qualities)
(comp-ctxt-debug comp-ctxt) (alist-get 'comp-debug
byte-native-qualities)
+ (comp-ctxt-driver-options comp-ctxt) (alist-get
'comp-native-driver-options
+ byte-native-qualities)
(comp-ctxt-top-level-forms comp-ctxt)
(cl-loop
for form in (reverse byte-to-native-top-level-forms)
diff --git a/src/comp.c b/src/comp.c
index bea9945..b2d8b8e 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -516,6 +516,7 @@ typedef struct {
typedef struct {
EMACS_INT speed;
EMACS_INT debug;
+ Lisp_Object driver_options;
gcc_jit_context *ctxt;
gcc_jit_type *void_type;
gcc_jit_type *bool_type;
@@ -4333,7 +4334,7 @@ DEFUN ("comp-native-driver-options-effective-p",
static void
add_driver_options (void)
{
- Lisp_Object options = Fsymbol_value (Qcomp_native_driver_options);
+ Lisp_Object options = comp.driver_options;
#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
|| defined (WINDOWSNT)
@@ -4400,6 +4401,7 @@ DEFUN ("comp--compile-ctxt-to-file",
Fcomp__compile_ctxt_to_file,
eassert (comp.speed < INT_MAX);
comp.debug = XFIXNUM (CALL1I (comp-ctxt-debug, Vcomp_ctxt));
eassert (comp.debug < INT_MAX);
+ comp.driver_options = CALL1I (comp-ctxt-driver-options, Vcomp_ctxt);
if (comp.debug)
gcc_jit_context_set_bool_option (comp.ctxt,