me
/
guix
Archived
1
0
Fork 0

Merge branch 'lisp-team'

master
Guillaume Le Vaillant 2023-09-23 10:29:31 +02:00
commit 4f35ff1275
No known key found for this signature in database
GPG Key ID: 6BE8208ADF21FE3F
5 changed files with 173 additions and 223 deletions

View File

@ -1946,7 +1946,6 @@ dist_patch_DATA = \
%D%/packages/patches/sbcl-clml-fix-types.patch \ %D%/packages/patches/sbcl-clml-fix-types.patch \
%D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \ %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/sbcl-riscv-Make-contribs-build-again.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \ %D%/packages/patches/scalapack-gcc-10-compilation.patch \
%D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scons-test-environment.patch \ %D%/packages/patches/scons-test-environment.patch \

View File

@ -1281,27 +1281,40 @@ timeouts.")
(define-public sbcl-bordeaux-threads (define-public sbcl-bordeaux-threads
(package (package
(name "sbcl-bordeaux-threads") (name "sbcl-bordeaux-threads")
(version "0.8.8") (version "0.9.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/sionescu/bordeaux-threads") (url "https://github.com/sionescu/bordeaux-threads")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6")) (base32 "0d9sd7pm91yhln95z8nclhn6n4l5b2cp3pxpggpmpv7rsq84ssmh"))
(file-name (file-name (git-file-name "cl-bordeaux-threads" version))))
(git-file-name "bordeaux-threads" version)))) (inputs (list sbcl-alexandria
(inputs (list sbcl-alexandria)) sbcl-global-vars
sbcl-trivial-features
sbcl-trivial-garbage))
(native-inputs (list sbcl-fiveam)) (native-inputs (list sbcl-fiveam))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(arguments (arguments
(list (list
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'silence-deprecation-warning
(lambda _
;; The deprecation warning for APIv1 makes the build of some
;; of the dependents of bordeaux-threads fail because they
;; interpret it as an error instead of a simple indication.
;; Let's silence this warning for now.
(substitute* (cons* "apiv1/default-implementations.lisp"
(find-files "apiv1" "impl-.*\\.lisp"))
(("\\(warn \"Bordeaux-Threads APIv1 is deprecated\\. Please migrate to APIv2\\.\"\\)")
""))))
(add-after 'unpack 'adjust-test-sleep (add-after 'unpack 'adjust-test-sleep
(lambda _ (lambda _
;; 0.001 is too short for some slower machines. ;; 0.001 is too short for some slower machines.
(substitute* "test/bordeaux-threads-test.lisp" (substitute* '("test/tests-v1.lisp"
"test/tests-v2.lisp")
(("sleep 0\\.001") "sleep 0.002"))))))) (("sleep 0\\.001") "sleep 0.002")))))))
(synopsis "Portable shared-state concurrency library for Common Lisp") (synopsis "Portable shared-state concurrency library for Common Lisp")
(description "BORDEAUX-THREADS is a proposed standard for a minimal (description "BORDEAUX-THREADS is a proposed standard for a minimal
@ -22181,58 +22194,67 @@ fit together as required by any particular game.")
(sbcl-package->cl-source-package sbcl-trial)) (sbcl-package->cl-source-package sbcl-trial))
(define-public sbcl-virality (define-public sbcl-virality
(package (let ((commit "cdc19cca9b028f0c30d14ed8b3e51359dd46069a")
(name "sbcl-virality") (revision "1"))
(version "0.3.0") (package
(source (name "sbcl-virality")
(origin (version (git-version "0.3.0" revision commit))
(method git-fetch) (source
(uri (git-reference (origin
(url "https://github.com/bufferswap/ViralityEngine") (method git-fetch)
(commit (string-append "v" version)))) (uri (git-reference
(file-name (git-file-name "cl-virality" version)) (url "https://github.com/bufferswap/ViralityEngine")
(sha256 (commit commit)))
(base32 "0hvjcvyd628jh4if6swk1wrfb9qdlnpk9ax1y3jarr8ms7ghfcdb")))) (file-name (git-file-name "cl-virality" version))
(build-system asdf-build-system/sbcl) (sha256
(arguments (base32 "1s25aapkqcr8fxi0i9wjw0n4jax7r4a9d9wflpr3sqz2vgrg2lz6"))))
`(#:asd-systems '("virality" (build-system asdf-build-system/sbcl)
"vorigin" (arguments
"vorigin.test" `(#:asd-systems '("virality"
"vshadow" "vorigin"
"vumbra" "vorigin.test"
"vutils") "vshadow"
#:phases (modify-phases %standard-phases "vumbra"
(add-after 'unpack 'delete-examples "vutils")
(lambda _ #:phases (modify-phases %standard-phases
;; Don't install the big "examples" directory. (add-after 'unpack 'delete-examples
(delete-file-recursively "examples")))))) (lambda _
(inputs ;; Don't install the big "examples" directory.
(list sbcl-3b-bmfont (delete-file-recursively "examples")
sbcl-babel ;; Remove example asd files that cause issues during
sbcl-cl-cpus ;; the 'copy-source' phase because they have the same
sbcl-cl-graph ;; names.
sbcl-cl-opengl (for-each
sbcl-cl-ppcre delete-file
sbcl-cl-slug (find-files "."
sbcl-closer-mop "^xXx-SYSTEM-NAME-xXx\\.asd$")))))))
sbcl-fast-io (inputs
sbcl-global-vars (list sbcl-3b-bmfont
sbcl-glsl-packing sbcl-babel
sbcl-jsown sbcl-cl-cpus
sbcl-lparallel sbcl-cl-graph
sbcl-pngload sbcl-cl-opengl
sbcl-printv sbcl-cl-ppcre
sbcl-queues sbcl-cl-slug
sbcl-sdl2 sbcl-closer-mop
sbcl-serapeum sbcl-fast-io
sbcl-split-sequence sbcl-global-vars
sbcl-static-vectors sbcl-glsl-packing
sbcl-trivial-features sbcl-jsown
sbcl-varjo)) sbcl-lparallel
(home-page "https://github.com/bufferswap/ViralityEngine") sbcl-pngload
(synopsis "Component-based game engine written in Common Lisp") sbcl-printv
(description sbcl-queues
"Virality Engine provides a system and workflow that helps describe the sbcl-sdl2
sbcl-serapeum
sbcl-split-sequence
sbcl-static-vectors
sbcl-trivial-features
sbcl-varjo))
(home-page "https://github.com/bufferswap/ViralityEngine")
(synopsis "Component-based game engine written in Common Lisp")
(description
"Virality Engine provides a system and workflow that helps describe the
elements needed to write 2D or 3D games. It was designed with several domain elements needed to write 2D or 3D games. It was designed with several domain
specific languages that make it easier to describe, manipulate, and use assets specific languages that make it easier to describe, manipulate, and use assets
commonly found in game making. Such assets include (but are not limited to) commonly found in game making. Such assets include (but are not limited to)
@ -22246,7 +22268,7 @@ can be used with them. Components are added to Actors which represent game
concepts like players, scenery, effects, etc. We define a component protocol concepts like players, scenery, effects, etc. We define a component protocol
invoked by Virality Engine to move your components to the next state and invoked by Virality Engine to move your components to the next state and
render them each frame.") render them each frame.")
(license license:expat))) (license license:expat))))
(define-public cl-virality (define-public cl-virality
(sbcl-package->cl-source-package sbcl-virality)) (sbcl-package->cl-source-package sbcl-virality))

View File

@ -17,7 +17,7 @@
;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net> ;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
@ -25,6 +25,7 @@
;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Andrew Kravchuk <awkravchuk@gmail.com.
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -266,7 +267,7 @@ interface to the Tk widget system.")
(define-public ecl (define-public ecl
(package (package
(name "ecl") (name "ecl")
(version "21.2.1") (version "23.9.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -274,7 +275,7 @@ interface to the Tk widget system.")
"https://ecl.common-lisp.dev/static/files/release/" "https://ecl.common-lisp.dev/static/files/release/"
name "-" version ".tgz")) name "-" version ".tgz"))
(sha256 (sha256
(base32 "000906nnq25177bgsfndiw3iqqgrjc9spk10hzk653sbz3f7anmi")))) (base32 "107q6gmxlsya4yv38r1x1axrgyyfgdrfkkz97zfp64bcrasdl6y5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; src/configure uses 'which' to confirm the existence of 'gzip'. ;; src/configure uses 'which' to confirm the existence of 'gzip'.
(native-inputs (native-inputs
@ -381,6 +382,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
(%current-target-system))) (%current-target-system)))
'("CFLAGS=-falign-functions=4") '("CFLAGS=-falign-functions=4")
'()) '())
,@(if (target-x86-64?)
'("--enable-portability"
"--with-threads=POSIX_THREADS")
'())
"--with-dynamic-ffi" "--with-dynamic-ffi"
"--with-dynamic-modules" "--with-dynamic-modules"
"--with-ffcall" "--with-ffcall"
@ -434,17 +439,15 @@ an interpreter, a compiler, a debugger, and much more.")
(define-public sbcl (define-public sbcl
(package (package
(name "sbcl") (name "sbcl")
(version "2.3.5") (version "2.3.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2")) version "-source.tar.bz2"))
(sha256 (sha256
(base32 "11ji5n65l31249r0v7hm0wc0yk2ila0y746nj36xn1cxrwh0gjc9")) (base32 "1xwr1pnwd3xj375ainlad7mm479rk2mrks8dc6d92cash3xl90b9"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; backport from upstream.
(patches (search-patches "sbcl-riscv-Make-contribs-build-again.patch"))
(snippet (snippet
'(begin '(begin
;; Don't force ARMv5. ;; Don't force ARMv5.

View File

@ -48,7 +48,7 @@
;;; Copyright © 2021, 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2021, 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me> ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021, 2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr> ;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
@ -4312,102 +4312,99 @@ to BMP, JPEG or PNG image formats.")
(define-public maxima (define-public maxima
(package (package
(name "maxima") (name "maxima")
(version "5.46.0") (version "5.47.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/maxima/Maxima-source/" (uri (string-append "mirror://sourceforge/maxima/Maxima-source/"
version "-source/" name "-" version ".tar.gz")) version "-source/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "0yhgsi7s22bpblrmrj60x0jsjdz98b5hjdcq7b0fhlzx4hdh414i"))
"01wbm8jj43p7gpdj4h55aij0b44bjydn4bwb7q1wjrfs91mz143k"))
(patches (search-patches "maxima-defsystem-mkdir.patch")))) (patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("bash" ,bash-minimal) (list bash-minimal
("gnuplot" ,gnuplot) ;for plots gnuplot ;for plots
("sbcl" ,sbcl) sbcl
("sed" ,sed) sed
("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima' tk)) ;Tcl/Tk is used by 'xmaxima'
(native-inputs (native-inputs
(list texinfo perl python)) (list texinfo perl python))
(arguments (arguments
`(#:configure-flags (list
,#~(list "--enable-sbcl" #:configure-flags
(string-append "--with-sbcl=" #$sbcl "/bin/sbcl") #~(list "--enable-sbcl"
(string-append "--with-posix-shell=" #$bash-minimal "/bin/sh") (string-append "--with-sbcl=" #$sbcl "/bin/sbcl")
(string-append "--with-wish=" #$tk "/bin/wish" (string-append "--with-posix-shell=" #$bash-minimal "/bin/sh")
#$(version-major+minor (package-version tk)))) (string-append "--with-wish=" #$tk "/bin/wish"
;; By default Maxima attempts to write temporary files to #$(version-major+minor (package-version tk))))
;; '/tmp/nix-build-maxima-*', which won't exist at run time. ;; By default Maxima attempts to write temporary files to
;; Work around that. ;; '/tmp/nix-build-maxima-*', which won't exist at run time.
#:make-flags (list "TMPDIR=/tmp") ;; Work around that.
#:phases #:make-flags #~(list "TMPDIR=/tmp")
(modify-phases %standard-phases #:phases
(add-after 'unpack 'patch-paths #~(modify-phases %standard-phases
(lambda* (#:key inputs #:allow-other-keys) (add-after 'unpack 'patch-paths
(let* ((sed (search-input-file inputs "/bin/sed")) (lambda* (#:key inputs #:allow-other-keys)
(coreutils (assoc-ref inputs "coreutils")) (let* ((sed (search-input-file inputs "/bin/sed"))
(dirname (string-append coreutils "/bin/dirname")) (coreutils (assoc-ref inputs "coreutils"))
(head (string-append coreutils "/bin/head")) (dirname (string-append coreutils "/bin/dirname"))
(perl (search-input-file inputs "/bin/perl")) (head (string-append coreutils "/bin/head"))
(python (search-input-file inputs "/bin/python3"))) (perl (search-input-file inputs "/bin/perl"))
(substitute* "src/maxima.in" (python (search-input-file inputs "/bin/python3")))
(("sed ") (string-append sed " ")) (substitute* "src/maxima.in"
(("dirname") dirname) (("sed ") (string-append sed " "))
(("head") head)) (("dirname") dirname)
(substitute* "doc/info/Makefile.in" (("head") head))
(("/usr/bin/env perl") perl)) (substitute* "doc/info/Makefile.in"
(substitute* "doc/info/build_html.sh.in" (("/usr/bin/env perl") perl))
(("python") python)) (substitute* "doc/info/build_html.sh.in"
#t))) (("python") python)))))
(add-before 'check 'pre-check (add-before 'check 'pre-check
(lambda _ (lambda _
(chmod "src/maxima" #o555) (chmod "src/maxima" #o555)))
#t)) (replace 'check
(replace 'check (lambda _
(lambda _ ;; This is derived from the testing code in the "debian/rules" file
;; This is derived from the testing code in the "debian/rules" file ;; of Debian's Maxima package.
;; of Debian's Maxima package. ;; If Maxima can successfully run this, the binary to be installed
;; If Maxima can successfully run this, the binary to be installed ;; should be fine.
;; should be fine. (invoke "sh" "-c"
(invoke "sh" "-c" (string-append
(string-append "./maxima-local "
"./maxima-local " "--lisp=sbcl "
"--lisp=sbcl " "--batch-string=\"run_testsuite();\" "
"--batch-string=\"run_testsuite();\" " "| grep -q \"No unexpected errors found\""))))
"| grep -q \"No unexpected errors found\"")))) ;; Make sure the doc and emacs files are found in the
;; Make sure the doc and emacs files are found in the ;; standard location. Also configure maxima to find gnuplot
;; standard location. Also configure maxima to find gnuplot ;; without having it on the PATH.
;; without having it on the PATH. (add-after 'install 'post-install
(add-after 'install 'post-install (lambda* (#:key outputs inputs #:allow-other-keys)
(lambda* (#:key outputs inputs #:allow-other-keys) (let* ((gnuplot (assoc-ref inputs "gnuplot"))
(let* ((gnuplot (assoc-ref inputs "gnuplot")) (out (assoc-ref outputs "out"))
(out (assoc-ref outputs "out")) (datadir (string-append out "/share/maxima/" #$version))
(datadir (string-append out "/share/maxima/" ,version)) (binutils (dirname (search-input-file inputs "/bin/as"))))
(binutils (dirname (search-input-file inputs "/bin/as")))) (with-directory-excursion out
(with-directory-excursion out (mkdir-p "share/emacs")
(mkdir-p "share/emacs") (mkdir-p "share/doc")
(mkdir-p "share/doc") (symlink
(symlink (string-append datadir "/doc/")
(string-append datadir "/doc/") (string-append out "/share/doc/maxima"))
(string-append out "/share/doc/maxima")) (with-atomic-file-replacement
(with-atomic-file-replacement (string-append datadir "/share/maxima-init.lisp")
(string-append datadir "/share/maxima-init.lisp") (lambda (in out)
(lambda (in out) (format out "~a ~s~a~%"
(format out "~a ~s~a~%" "(setf $gnuplot_command "
"(setf $gnuplot_command " (string-append gnuplot "/bin/gnuplot") ")")
(string-append gnuplot "/bin/gnuplot") ")") (dump-port in out))))
(dump-port in out)))) ;; Ensure that Maxima will have access to the GNU binutils
;; Ensure that Maxima will have access to the GNU binutils ;; components at runtime.
;; components at runtime. (wrap-program (string-append out "/bin/maxima")
(wrap-program (string-append out "/bin/maxima") `("PATH" prefix (#$binutils))))))
`("PATH" prefix (,binutils)))) ;; The Maxima command describe allows picking the relevant portions
#t)) ;; from Maximas Texinfo docs. However it does not support reading
;; The Maxima command describe allows picking the relevant portions ;; gzipped info files.
;; from Maximas Texinfo docs. However it does not support reading (delete 'compress-documentation))))
;; gzipped info files.
(delete 'compress-documentation))))
(home-page "https://maxima.sourceforge.io") (home-page "https://maxima.sourceforge.io")
(synopsis "Numeric and symbolic expression manipulation") (synopsis "Numeric and symbolic expression manipulation")
(description "Maxima is a system for the manipulation of symbolic and (description "Maxima is a system for the manipulation of symbolic and

View File

@ -1,71 +0,0 @@
From 8704f528f227f587d0e06dfd2f807aeca7a69a71 Mon Sep 17 00:00:00 2001
From: Charles Zhang <charleszhang99@yahoo.com>
Date: Thu, 1 Jun 2023 16:39:26 +0200
Subject: [PATCH] riscv: Make contribs build again.
The issue was that the LINKAGE_TEMP_REG being NL3 was a C argument
register, so of course that caused clashing on C call-out, causing
problems with run-program. Going back to NL7 didn't work either
because it wasn't getting saved before entry into the trampoline. The
code here used to have NL7 before the trampoline code was gutted and
then restored, so I'm wondering how this ever worked before, because
it definitely did. Pick LIP as the TEMP_REG now because not only does
it get saved, it's also the least likely thing to get disturbed by
clobbering.
Fixes #lp2002930.
Also remove assembly routine printing because it doesn't need to be
part of the build script (unlike the other files in output/ which
can't trivially be recovered from a built image), and because not all
disassembler printers have been written on riscv yet.
---
NEWS | 3 +++
make-target-2-load.lisp | 4 ----
src/runtime/riscv-arch.c | 2 +-
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/NEWS b/NEWS
index 17537ff92..5c0f7777b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-2.3.5:
+ * bug fix: riscv can build contribs again.
+
changes in sbcl-2.3.5 relative to sbcl-2.3.4:
* enhancement: Unicode support has been updated to support version 15.0.0 of
the Unicode standard, including addition of characters and their collation
diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp
index 885ebda74..b9a1a1e36 100644
--- a/make-target-2-load.lisp
+++ b/make-target-2-load.lisp
@@ -6,10 +6,6 @@
(defvar *compile-files-p* nil)
(load (merge-pathnames "src/cold/warm.lisp" *load-pathname*))
-(with-open-file (stream "output/asm-routines.txt" :direction :output
- :if-does-not-exist :create :if-exists :supersede)
- (sb-c:dis sb-fasl:*assembler-routines* stream))
-
;; sb-xref-for-internals is actively harmful to tree-shaking.
;; Remove some symbols to make the hide-packages test pass.
#+sb-xref-for-internals
diff --git a/src/runtime/riscv-arch.c b/src/runtime/riscv-arch.c
index 6c1994829..062623899 100644
--- a/src/runtime/riscv-arch.c
+++ b/src/runtime/riscv-arch.c
@@ -159,7 +159,7 @@ arch_install_interrupt_handlers(void)
* Linkage entry size is 8 or 20, because we need 2 instructions for the 32-bit case and we need 3 instructions and an 8 byte address in the 64-bit case.
*/
-#define LINKAGE_TEMP_REG reg_NL3
+#define LINKAGE_TEMP_REG reg_LIP // Lisp needs to save before entry.
void arch_write_linkage_table_entry(int index, void *target_addr, int datap)
{
--
2.40.1