173 Commits

Author SHA1 Message Date
Kohei Tokunaga
20eacb22e9
Emscripten: Add wasm64 target (#927)
* src/wasm32: Allow building with Emscripten with 64bit support

MEMORY64 enables 64bit pointers so this commit updates the accessors for the
libffi data structures accordingly.

Each JS functions in ffi.c receives pointers as BigInt (i64) values and with
casts them to Numer (i53) using bigintToI53Checked. While memory64 supports
64bit addressing, the maximum memory size is currently limited to 16GiB
[1]. Therefore, we can assume that the passed pointers are within the
Number's range.

[1] https://webassembly.github.io/memory64/js-api/#limits

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>

* Add wasm64 target to the build scripts

This commit adds support for the wasm64 target via the configure
script. Emscripten supports two modes of the -sMEMORY64 flag[1] so the
script allows users specifying the value through a configuration variable.

Additionally, "src/wasm32" directory has been renamed to the more generic
"src/wasm" because it's now shared between both 32bit and 64bit builds.

[1] https://emscripten.org/docs/tools_reference/settings_reference.html#memory64

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>

* GitHub Actions: Add wasm64 tests

This commit adds a test matrix for wasm32, wasm64 and wasm64 with the
-sMEMORY64=2 flag, using the latest version of Emscripten. -Wno-main is
added to suppress the following warning in unwindtest.cc and
unwindtest_ffi_call.cc.

> FAIL: libffi.closures/unwindtest_ffi_call.cc -W -Wall -O2 (test for excess errors)
> Excess errors:
> ./libffi.closures/unwindtest_ffi_call.cc:20:5: warning: 'main' should not be 'extern "C"' [-Wmain]
>    20 | int main (void)
>       |     ^
> 1 warning generated.

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>

* testsuite: Fix types of main function

test_libffi.py calls each test's main function without arguments, but some
tests define the main function with parameters. This signature mismatch
causes a runtime error with the recent version of Emscripten.

This commit resolves this issue by updating the function signatures to match
the way they are called.

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>

* README: Add document about WASM64

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>

---------

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
2025-08-02 02:28:46 -04:00
Anthony Green
e28a0d5b07 ci: add fail-if-no-assets option in tarball workflow 2025-06-10 16:17:58 -04:00
Anthony Green
517310ddbf ci: update compiler versions in github workflow 2025-06-09 19:03:49 -04:00
Anthony Green
d994395ce7 ci: update gcc version to 15 in build process 2025-06-09 18:43:40 -04:00
Anthony Green
a18d4e95d3 feat(.github/workflows): add step to wipe old snapshot assets in tarball.yml 2025-06-09 13:35:29 -04:00
Anthony Green
b9b8378556 fix(github-actions): correct regex in version extraction 2025-06-09 13:29:03 -04:00
Anthony Green
7ac6f14591 ci: change packages installed during workflow 2025-06-09 13:08:02 -04:00
Anthony Green
ceab352dfa ci: add installation of necessary tools to tarball workflow 2025-06-09 13:01:50 -04:00
Anthony Green
1f73aa507e refactor(.github/workflows/tarball): remove repeated job blocks 2025-06-09 12:56:19 -04:00
Anthony Green
7f5375d7c7 chore(workflows): update snapshot release description in tarball.yml 2025-06-09 12:55:09 -04:00
Anthony Green
2a5195bb2a chore(.github/workflows): update tarball.yml indentation 2025-06-09 12:54:55 -04:00
Anthony Green
2f535b8f74 chore(ci): update tarball workflow in GitHub Actions 2025-06-09 12:52:43 -04:00
Anthony Green
172bfb41f4 chore(.github/workflows): update tarball workflow to use softprops/action-gh-release 2025-06-09 12:22:35 -04:00
Anthony Green
0947743f69
Make tarballs (#924)
* Create tarballs in CI
2025-06-09 11:53:15 -04:00
Anthony Green
40a7682705
Improve CI test coverage (#923)
Add CI testing on Windows with both gcc and clang.
2025-06-09 09:49:00 -04:00
Anthony Green
64a42f618d
More CI testing (#921)
* ci: add new build configuration in GitHub Actions

* ci: add Windows clang build workflow

* ci: add additional packages to GitHub workflows build

* ci: optimize build workflow and improve commenting

* ci: remove unused MSVC dev command from build workflow

* ci: modify build workflow to support multiple compilers

* build(github-actions): use matrix.compiler for CC and CXX variables
2025-06-08 16:59:58 -04:00
JupiterRider
8b0eab28cb
Update License date and improve rcedit DLL metadata (#919)
* rcedit add architecture and original filename

* Update LICENSE to 2025
2025-06-08 06:16:38 -04:00
JupiterRider
e3cbebffcc
use rcedit to add metainfo to DLL (#918)
* use rcedit to add metainfo to DLL

* remove trailing backslash in build.yml

* build.yml: add rcedit execute permission

* build.yml: cd to the right directory
2025-06-06 16:40:40 -04:00
Anthony Green
9bb21f1d29 fix: correct path in LDFLAGS line of build.yml workflow 2025-06-06 13:48:25 -04:00
Anthony Green
c2ae66fc45 fix(build): change version.o to version.obj in build.yml 2025-06-06 13:41:56 -04:00
Anthony Green
d326a4c025 refactor: simplify versioning in .github/workflows/build.yml 2025-06-05 09:35:47 -04:00
Anthony Green
d241e51019 chore(build): update build script to use object file for versioning 2025-06-05 09:22:10 -04:00
Anthony Green
c07b0c4ddc fix(github workflows): correct LDFLAGS path in build.yml 2025-06-05 08:52:41 -04:00
Anthony Green
ec22d0fe7b build(.github/workflows): include build number in version info 2025-06-05 08:44:36 -04:00
Anthony Green
e133ee847d chore(build): add command to log version information in build script 2025-06-05 07:42:52 -04:00
Anthony Green
c8d929fc45 ci: add version logging in build workflow 2025-06-05 07:33:57 -04:00
Anthony Green
d6029210d7 ci: refactor version retrieval in build workflow 2025-06-05 07:11:43 -04:00
Anthony Green
49c70cab94 fix(build): correct variables for FILEVERSION and PRODUCTVERSION 2025-06-05 06:57:20 -04:00
Anthony Green
27f93a7038 feat(build): add version information resource to build script and update documentation version 2025-06-05 06:50:12 -04:00
Anthony Green
bac99f2f3f
Release candidate 1 for 3.5.0. Windows build fixes. (#916)
* refactor(ci): improve wget retry logic in .ci/install.sh

* build(github-actions): use static runtime library in build

* refactor(ffi.h.in): export version API

* chore: update libffi version to 3.5.0-rc1
2025-06-05 06:12:10 -04:00
Anthony Green
5ad529fb0d
Many CI testing fixes and improvements. (#913) 2025-06-03 19:12:49 -04:00
Anthony Green
854ce7be85
Make 3.5.0-pre0 release. Build and publish Windows binaries. Clean up testing. (#912)
This commit removes many platforms from the testing workflow.
They will be added back in future commits.
2025-06-02 20:18:46 -04:00
Anthony Green
dcc9e93b8a Add Issue labeler Action 2025-05-28 14:32:02 -04:00
Kleis Auke Wolthuizen
adfe4489c1
Emscripten: remove support for -sWASM_BIGINT=0 (#874)
* Emscripten: cleanup

* Emscripten: remove support for `-sWASM_BIGINT=0`

* Emscripten: remove redundant CircleCI config

* Emscripten: modernize CI

* Ensure test helper methods are static

Similar to #644.

* Fix test failures in `cls_multi_{s,u}shortchar`
2025-01-31 15:41:56 -05:00
dependabot[bot]
377a136969
Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows (#856)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4.1.7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-15 07:38:22 -04:00
Anthony Green
94eaedb40e Update sparc64 host 2024-02-18 08:41:04 -05:00
Anthony Green
e1dcf03b46 Update cfarm hostnames 2024-02-18 08:02:45 -05:00
Anthony Green
c07c40ee94 feat(github-actions): add new build workflow for warp 2024-01-31 22:43:38 -05:00
Daily Price Depot Droid
adbcf2b247 Disable firefox testing 2023-10-21 09:58:28 -04:00
Anthony Green
22b50e896a Fix python and pyodide version 2023-08-31 16:31:42 -04:00
Anthony Green
4467a3bc35 Upgrade pyodide version to match newer selenium API 2023-08-31 08:48:50 -04:00
Anthony Green
2375206497 Normalize libffi labels 2023-02-09 12:23:35 -05:00
Anthony Green
ca26801567 Use rlgl 2023-02-09 10:31:22 -05:00
Hood Chatham
7d23c2d28e
Add emscripten gha workflow (#768)
Resolves issue #767
2023-02-09 09:01:37 -05:00
Anthony Green
883f5ae665 Rename label 2023-02-05 09:52:00 -05:00
Anthony Green
c267c72fa8 Modernize 2023-02-02 16:04:34 -05:00
Anthony Green
7611bb4cfe Use checkout@v3, with nodejs 16 2023-01-08 09:01:43 -05:00
Anthony Green
45e492952e Add 32-bit cygwin test 2022-10-16 12:41:56 -04:00
Anthony Green
c163d93ac0 Add gcc-12 testing for aarch64 linux 2022-10-08 18:35:38 -04:00
Anthony Green
e9e4415752 Don't tweak path 2022-09-27 21:25:30 -04:00