Make the native compiler always use `make-temp-file' for temporary files

* src/comp.c (CALL4I): Define macro.
(Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of
`make-temp-file-internal'.
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise.
This commit is contained in:
Andrea Corallo 2023-02-20 21:03:58 +01:00
parent 88ee92e61d
commit 5d0b45cd67
2 changed files with 8 additions and 3 deletions

View file

@ -3813,8 +3813,8 @@ Return the trampoline if found or nil otherwise."
;; found.
finally (cl-return
(expand-file-name
(make-temp-file-internal (file-name-sans-extension rel-filename)
0 ".eln" nil)
(make-temp-file (file-name-sans-extension rel-filename) 0 ".eln"
nil)
temporary-file-directory))))
(defun comp-trampoline-compile (subr-name)

View file

@ -514,6 +514,10 @@ load_gccjit_if_necessary (bool mandatory)
#define CALL2I(fun, arg1, arg2) \
CALLN (Ffuncall, intern_c_string (STR (fun)), arg1, arg2)
/* Like call4 but stringify and intern. */
#define CALL4I(fun, arg1, arg2, arg3, arg4) \
CALLN (Ffuncall, intern_c_string (STR (fun)), arg1, arg2, arg3, arg4)
#define DECL_BLOCK(name, func) \
gcc_jit_block *(name) = \
gcc_jit_function_new_block ((func), STR (name))
@ -4991,7 +4995,8 @@ DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file,
format_string ("%s_libgccjit_repro.c", SSDATA (ebase_name)));
Lisp_Object tmp_file =
Fmake_temp_file_internal (base_name, Qnil, build_string (".eln.tmp"), Qnil);
CALL4I (make-temp-file, base_name, Qnil, build_string (".eln.tmp"), Qnil);
Lisp_Object encoded_tmp_file = ENCODE_FILE (tmp_file);
#ifdef WINDOWSNT
encoded_tmp_file = ansi_encode_filename (encoded_tmp_file);