Properly build an .msi for windows-arm64

This commit is contained in:
Stas Boukarev 2026-02-12 20:13:01 +03:00
parent aa0fa1c56e
commit d44029f2dd
6 changed files with 28 additions and 23 deletions

View file

@ -30,20 +30,22 @@ jobs:
- name: install host sbcl
shell: pwsh
run: |
choco install sbcl -source tools-for-build
Invoke-WebRequest -Uri "https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/sbcl-2.6.1.132-4d12ab542-arm64-windows-binary.msi" -OutFile "sbcl.msi"
Start-Process msiexec.exe -Wait -ArgumentList '/i sbcl.msi /qn /norestart'
- name: build
env:
SBCL_HOME: "/c/Program Files/Steel Bank Common Lisp/"
run: |
PATH=$PATH:"/c/Program Files/Steel Bank Common Lisp/"
export PATH
./make.sh --arch=${{matrix.arch}} --with-sb-core-compression --xc-host='sbcl --lose-on-corruption --disable-ldb --disable-debugger'
- name: install WiX Toolset
shell: pwsh
run: |
choco install wixtoolset
$wixPath = (Get-ChildItem "C:\Program Files (x86)\WiX Toolset*" | Select-Object -First 1).FullName
echo "WIX=$wixPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: build
env:
SBCL_HOME: "/c/Program Files/Steel Bank Common Lisp/1.4.14"
run: |
PATH=$PATH:"/c/Program Files/Steel Bank Common Lisp/1.4.14"
export PATH
./make.sh --arch=${{matrix.arch}} --with-sb-core-compression --xc-host='sbcl --lose-on-corruption --disable-ldb --disable-debugger'
- name: make installer
env:
WIX: ${{ env.WIX }}
@ -55,12 +57,10 @@ jobs:
with:
name: sbcl-windows-installer-${{ matrix.sys }}
path: sbcl-windows-installer
- name: tests
continue-on-error: true
working-directory: tests
run: ./run-tests.sh
# - name: tests
# working-directory: tests
# run: ./run-tests.sh
- name: ansi-tests
continue-on-error: true
working-directory: tests
run: ./ansi-tests.sh

View file

@ -30,7 +30,8 @@ jobs:
- name: install host sbcl
shell: pwsh
run: |
choco install sbcl -source tools-for-build
Invoke-WebRequest -Uri "https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/sbcl-1.4.14-x86-64-windows-binary.msi" -OutFile "sbcl.msi"
Start-Process msiexec.exe -Wait -ArgumentList '/i sbcl.msi /qn /norestart'
- name: build
env:
SBCL_HOME: "/c/Program Files/Steel Bank Common Lisp/1.4.14"

View file

@ -78,7 +78,8 @@
(assert (not (c-find-heap->arena)))
(destroy-arena a)))
(test-util:with-test (:name :interrupt-thread-on-arena)
(test-util:with-test (:name :interrupt-thread-on-arena
:broken-on (and :win32 :arm64))
(let* ((a (new-arena 1048576))
(sem (sb-thread:make-semaphore))
(junk))

View file

@ -9,6 +9,7 @@
;;; (> (mod seconds 1) (* most-positive-fixnum 1e-9))
(with-test (:name (sleep :non-consing)
:serial t :skipped-on :interpreter
:broken-on (and :win32 :arm64)
:fails-on (and :arm :64-bit-time))
(handler-case (sb-ext:with-timeout 5
(ctu:assert-no-consing (sleep 0.00001s0))
@ -21,7 +22,8 @@
;;; Changes to make SLEEP cons less led to SLEEP
;;; not sleeping at all on 32-bit platforms when
;;; (> (mod seconds 1) (* most-positive-fixnum 1e-9)).
(with-test (:name (sleep :bug-1194673))
(with-test (:name (sleep :bug-1194673)
:broken-on (and :win32 :arm64))
(assert (eq :timeout
(handler-case
(with-timeout 0.01
@ -31,7 +33,7 @@
;;; SLEEP should work with large integers as well
(with-test (:name (sleep :pretty-much-forever)
:skipped-on (:and (:or :linux :darwin) :sb-safepoint)) ; hangs
:broken-on (:and (:or :linux :darwin (and :win32 :arm64)) :sb-safepoint)) ; hangs
(assert (eq :timeout
(handler-case
(sb-ext:with-timeout 1

Binary file not shown.

View file

@ -157,7 +157,7 @@
("Component" ("Id" ,(component-id root)
"Guid" ,(make-guid)
"DiskId" 1
#+x86-64 "Win64" #+x86-64 "yes")
#+64-bit "Win64" #+64-bit "yes")
,@(loop for file in (directory
(make-pathname :name :wild :type :wild :defaults root))
when (or (pathname-name file) (pathname-type file))
@ -229,9 +229,9 @@
"Language" 1033)
("Package" ("Id" "*"
"Manufacturer" ,(manufacturer-name)
"InstallerVersion" 200
"InstallerVersion" 500
"Compressed" "yes"
#+x86-64 "Platform" #+x86-64 "x64"
#+(or arm64 x86-64) "Platform" #+x86-64 "x64" #+arm64 "arm64"
"InstallScope" "perMachine"))
("Media" ("Id" 1
"Cabinet" "sbcl.cab"
@ -260,7 +260,8 @@
"Type" "string"
"Value" ""
"KeyPath" "yes")))))
("Directory" ("Id" #-x86-64 "ProgramFilesFolder" #+x86-64 "ProgramFiles64Folder"
("Directory" ("Id" #+x86 "ProgramFilesFolder"
#+64-bit "ProgramFiles64Folder"
"Name" "PFiles")
("Directory" ("Id" "BaseFolder"
"Name" ,(application-name))
@ -268,7 +269,7 @@
("Component" ("Id" "SBCL_SetPATH"
"Guid" ,(make-guid)
"DiskId" 1
#+x86-64 "Win64" #+x86-64 "yes")
#+64-bit "Win64" #+64-bit "yes")
("CreateFolder")
("Environment" ("Id" "Env_PATH"
"System" "yes"
@ -279,7 +280,7 @@
("Component" ("Id" "SBCL_Base"
"Guid" ,(make-guid)
"DiskId" 1
#+x86-64 "Win64" #+x86-64 "yes")
#+64-bit "Win64" #+64-bit "yes")
;; If we want to associate files with SBCL, this
;; is how it's done -- but doing this by default
;; and without asking the user for permission Is