ffi 1.17.1 → 1.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +33 -0
- data/Gemfile +8 -3
- data/README.md +1 -0
- data/Rakefile +7 -4
- data/Steepfile +8 -0
- data/ext/ffi_c/DynamicLibrary.c +1 -1
- data/ext/ffi_c/Function.c +2 -0
- data/ext/ffi_c/MethodHandle.c +4 -2
- data/ext/ffi_c/libffi/.ci/Containerfile.ppc64le +12 -0
- data/ext/ffi_c/libffi/.ci/build.sh +38 -33
- data/ext/ffi_c/libffi/.ci/install.sh +46 -50
- data/ext/ffi_c/libffi/.ci/site.exp +6 -0
- data/ext/ffi_c/libffi/.gail-labels +44 -0
- data/ext/ffi_c/libffi/.github/workflows/build.yml +212 -333
- data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +101 -58
- data/ext/ffi_c/libffi/.github/workflows/label-new-issue.yaml +15 -0
- data/ext/ffi_c/libffi/.github/workflows/tarball.yml +55 -0
- data/ext/ffi_c/libffi/LICENSE +1 -1
- data/ext/ffi_c/libffi/Makefile.am +20 -15
- data/ext/ffi_c/libffi/Makefile.in +41 -54
- data/ext/ffi_c/libffi/README.md +40 -4
- data/ext/ffi_c/libffi/acinclude.m4 +6 -0
- data/ext/ffi_c/libffi/config.guess +80 -22
- data/ext/ffi_c/libffi/config.sub +161 -80
- data/ext/ffi_c/libffi/configure +1058 -1372
- data/ext/ffi_c/libffi/configure.ac +28 -14
- data/ext/ffi_c/libffi/configure.host +6 -6
- data/ext/ffi_c/libffi/doc/Makefile.in +4 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +27 -4
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +9 -9
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -28
- data/ext/ffi_c/libffi/include/Makefile.in +4 -0
- data/ext/ffi_c/libffi/include/ffi.h.in +19 -1
- data/ext/ffi_c/libffi/include/ffi_cfi.h +2 -0
- data/ext/ffi_c/libffi/include/ffi_common.h +17 -0
- data/ext/ffi_c/libffi/libffi.map.in +13 -1
- data/ext/ffi_c/libffi/libtool-version +1 -1
- data/ext/ffi_c/libffi/m4/asmcfi.m4 +28 -11
- data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +13 -3
- data/ext/ffi_c/libffi/man/Makefile.in +4 -0
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +7 -4
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +2 -2
- data/ext/ffi_c/libffi/src/aarch64/internal.h +63 -17
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +22 -12
- data/ext/ffi_c/libffi/src/arc/arcompact.S +2 -2
- data/ext/ffi_c/libffi/src/arc/ffi.c +6 -2
- data/ext/ffi_c/libffi/src/arm/sysv.S +1 -1
- data/ext/ffi_c/libffi/src/closures.c +3 -3
- data/ext/ffi_c/libffi/src/dlmalloc.c +1 -0
- data/ext/ffi_c/libffi/src/mips/ffitarget.h +2 -4
- data/ext/ffi_c/libffi/src/mips/n32.S +4 -0
- data/ext/ffi_c/libffi/src/mips/o32.S +4 -0
- data/ext/ffi_c/libffi/src/or1k/ffi.c +2 -2
- data/ext/ffi_c/libffi/src/pa/linux.S +4 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +19 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +26 -19
- data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +26 -16
- data/ext/ffi_c/libffi/src/powerpc/internal.h +10 -0
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +47 -0
- data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +24 -0
- data/ext/ffi_c/libffi/src/prep_cif.c +1 -4
- data/ext/ffi_c/libffi/src/riscv/ffi.c +39 -16
- data/ext/ffi_c/libffi/src/riscv/internal.h +7 -0
- data/ext/ffi_c/libffi/src/riscv/sysv.S +24 -0
- data/ext/ffi_c/libffi/src/s390/ffi.c +28 -1
- data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
- data/ext/ffi_c/libffi/src/s390/sysv.S +38 -0
- data/ext/ffi_c/libffi/src/sparc/ffi.c +16 -0
- data/ext/ffi_c/libffi/src/tramp.c +6 -1
- data/ext/ffi_c/libffi/src/types.c +23 -1
- data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffi.c +166 -315
- data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffitarget.h +17 -0
- data/ext/ffi_c/libffi/src/x86/ffi.c +4 -1
- data/ext/ffi_c/libffi/src/x86/ffi64.c +4 -1
- data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -3
- data/ext/ffi_c/libffi/src/x86/sysv.S +1 -3
- data/ext/ffi_c/libffi/src/x86/sysv_intel.S +1 -3
- data/ext/ffi_c/libffi/testsuite/Makefile.am +6 -4
- data/ext/ffi_c/libffi/testsuite/Makefile.in +10 -4
- data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +4 -24
- data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +10 -27
- data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +6 -31
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +269 -256
- data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +3 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/longjmp.c +60 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +54 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +88 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +31 -0
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +1 -2
- data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +2 -0
- data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +2 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.threads/ffitest.h +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.threads/threads.exp +50 -0
- data/ext/ffi_c/libffi/testsuite/libffi.threads/tsan.c +74 -0
- data/ext/ffi_c/libffi.mk +5 -0
- data/ffi.gemspec +4 -5
- data/lib/ffi/autopointer.rb +6 -0
- data/lib/ffi/compat.rb +11 -0
- data/lib/ffi/function.rb +23 -0
- data/lib/ffi/library.rb +19 -3
- data/lib/ffi/struct_by_reference.rb +1 -1
- data/lib/ffi/version.rb +1 -1
- data/samples/hello_ractor.rb +9 -1
- data/samples/qsort_ractor.rb +9 -1
- data/sig/ffi/auto_pointer.rbs +1 -1
- data/sig/ffi/errno.rbs +8 -0
- data/sig/ffi/platform.rbs +49 -0
- data/sig/ffi/struct.rbs +2 -2
- data/sig/ffi/struct_by_reference.rbs +1 -1
- data/sig/ffi.rbs +4 -1
- data.tar.gz.sig +0 -0
- metadata +37 -83
- metadata.gz.sig +0 -0
- data/ext/ffi_c/libffi/.appveyor/site.exp +0 -16
- data/ext/ffi_c/libffi/.appveyor.yml +0 -84
- data/ext/ffi_c/libffi/.circleci/config.yml +0 -156
- data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
- data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
- data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
- data/lib/ffi/tools/types_generator.rb +0 -137
- data/rakelib/ffi_gem_helper.rb +0 -65
- /data/ext/ffi_c/libffi/{.appveyor → .ci}/unix-noexec.exp +0 -0
|
@@ -13,13 +13,13 @@ on:
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
env:
|
|
16
|
-
PYODIDE_VERSION: 0.
|
|
16
|
+
PYODIDE_VERSION: 0.58.4
|
|
17
17
|
# PYTHON_VERSION and EMSCRIPTEN_VERSION are determined by PYODIDE_VERSION.
|
|
18
18
|
# The appropriate versions can be found in the Pyodide repodata.json
|
|
19
19
|
# "info" field, or in Makefile.envs:
|
|
20
20
|
# https://github.com/pyodide/pyodide/blob/main/Makefile.envs#L2
|
|
21
|
-
PYTHON_VERSION: 3.
|
|
22
|
-
EMSCRIPTEN_VERSION:
|
|
21
|
+
PYTHON_VERSION: 3.12.7
|
|
22
|
+
EMSCRIPTEN_VERSION: 4.0.10
|
|
23
23
|
EM_CACHE_FOLDER: emsdk-cache
|
|
24
24
|
|
|
25
25
|
jobs:
|
|
@@ -27,53 +27,76 @@ jobs:
|
|
|
27
27
|
runs-on: ubuntu-22.04
|
|
28
28
|
steps:
|
|
29
29
|
- name: Setup cache
|
|
30
|
-
|
|
31
|
-
uses: actions/cache@v3
|
|
30
|
+
uses: actions/cache@v4
|
|
32
31
|
with:
|
|
33
|
-
path: ${{env.EM_CACHE_FOLDER}}
|
|
34
|
-
key: ${{env.EMSCRIPTEN_VERSION}}
|
|
32
|
+
path: ${{ env.EM_CACHE_FOLDER }}
|
|
33
|
+
key: ${{ env.EMSCRIPTEN_VERSION }}
|
|
35
34
|
|
|
36
|
-
-
|
|
35
|
+
- name: Setup emsdk
|
|
36
|
+
uses: mymindstorm/setup-emsdk@v14
|
|
37
37
|
with:
|
|
38
38
|
version: ${{ env.EMSCRIPTEN_VERSION }}
|
|
39
|
-
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
|
39
|
+
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
40
40
|
|
|
41
41
|
test-dejagnu:
|
|
42
42
|
strategy:
|
|
43
43
|
matrix:
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
target:
|
|
45
|
+
- name: wasm32
|
|
46
|
+
host: wasm32
|
|
47
|
+
configureflags:
|
|
48
|
+
testflags:
|
|
49
|
+
- name: wasm64
|
|
50
|
+
host: wasm64
|
|
51
|
+
configureflags:
|
|
52
|
+
testflags: -sMEMORY64=1
|
|
53
|
+
- name: wasm64-2
|
|
54
|
+
host: wasm64
|
|
55
|
+
configureflags: WASM64_MEMORY64=2
|
|
56
|
+
testflags: -sMEMORY64=2
|
|
57
|
+
runs-on: ubuntu-24.04
|
|
46
58
|
needs: [setup-emsdk-cache]
|
|
47
59
|
steps:
|
|
48
60
|
- name: Checkout
|
|
49
|
-
uses: actions/checkout@
|
|
61
|
+
uses: actions/checkout@v4
|
|
50
62
|
|
|
51
|
-
- name:
|
|
52
|
-
|
|
53
|
-
uses: actions/setup-python@v4
|
|
63
|
+
- name: Setup Python
|
|
64
|
+
uses: actions/setup-python@v5
|
|
54
65
|
with:
|
|
55
66
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
56
67
|
|
|
57
68
|
- name: Setup cache
|
|
58
|
-
|
|
59
|
-
uses: actions/cache@v3
|
|
69
|
+
uses: actions/cache@v4
|
|
60
70
|
with:
|
|
61
|
-
path: ${{env.EM_CACHE_FOLDER}}
|
|
62
|
-
key: ${{env.EMSCRIPTEN_VERSION}}
|
|
71
|
+
path: ${{ env.EM_CACHE_FOLDER }}
|
|
72
|
+
key: ${{ env.EMSCRIPTEN_VERSION }}
|
|
63
73
|
|
|
64
|
-
-
|
|
74
|
+
- name: Setup emsdk
|
|
75
|
+
uses: mymindstorm/setup-emsdk@v14
|
|
65
76
|
with:
|
|
66
77
|
version: ${{ env.EMSCRIPTEN_VERSION }}
|
|
67
|
-
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
|
78
|
+
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
68
79
|
|
|
69
|
-
- name:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
- name: Setup node.js
|
|
81
|
+
uses: actions/setup-node@v4
|
|
82
|
+
with:
|
|
83
|
+
node-version: 24
|
|
73
84
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
# This step updates emsdk's configuration file ".emscripten" to point to
|
|
86
|
+
# nodejs installed in the previous step.
|
|
87
|
+
- name: Configure emsdk to use the installed node.js
|
|
88
|
+
run: sed -i -E 's|NODE_JS = .*|NODE_JS = '"'$(which node)'"'|g' ${EMSDK}/.emscripten
|
|
89
|
+
|
|
90
|
+
- name: Install dependencies
|
|
91
|
+
run: sudo apt-get install dejagnu libltdl-dev
|
|
92
|
+
|
|
93
|
+
- name: Run tests
|
|
94
|
+
run: testsuite/emscripten/node-tests.sh
|
|
95
|
+
env:
|
|
96
|
+
TARGET_HOST: ${{ matrix.target.host }}
|
|
97
|
+
EXTRA_CONFIGURE_FLAGS: ${{ matrix.target.configureflags }}
|
|
98
|
+
EXTRA_CFLAGS: ${{ matrix.target.testflags }}
|
|
99
|
+
EXTRA_TEST_LDFLAGS: ${{ matrix.target.testflags }}
|
|
77
100
|
|
|
78
101
|
- name: Install rlgl and run
|
|
79
102
|
run: |
|
|
@@ -86,73 +109,93 @@ jobs:
|
|
|
86
109
|
build:
|
|
87
110
|
strategy:
|
|
88
111
|
matrix:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
112
|
+
target:
|
|
113
|
+
- name: wasm32
|
|
114
|
+
host: wasm32
|
|
115
|
+
configureflags:
|
|
116
|
+
testflags:
|
|
117
|
+
- name: wasm64
|
|
118
|
+
host: wasm64
|
|
119
|
+
configureflags:
|
|
120
|
+
testflags: -sMEMORY64=1
|
|
121
|
+
- name: wasm64-2
|
|
122
|
+
host: wasm64
|
|
123
|
+
configureflags: WASM64_MEMORY64=2
|
|
124
|
+
testflags: -sMEMORY64=2
|
|
125
|
+
runs-on: ubuntu-24.04
|
|
93
126
|
needs: [setup-emsdk-cache]
|
|
94
127
|
steps:
|
|
95
128
|
- name: Checkout
|
|
96
|
-
uses: actions/checkout@
|
|
129
|
+
uses: actions/checkout@v4
|
|
97
130
|
|
|
98
131
|
- name: Setup cache
|
|
99
|
-
|
|
100
|
-
uses: actions/cache@v3
|
|
132
|
+
uses: actions/cache@v4
|
|
101
133
|
with:
|
|
102
|
-
path: ${{env.EM_CACHE_FOLDER}}
|
|
103
|
-
key: ${{env.EMSCRIPTEN_VERSION}}
|
|
134
|
+
path: ${{ env.EM_CACHE_FOLDER }}
|
|
135
|
+
key: ${{ env.EMSCRIPTEN_VERSION }}
|
|
104
136
|
|
|
105
|
-
-
|
|
137
|
+
- name: Setup emsdk
|
|
138
|
+
uses: mymindstorm/setup-emsdk@v12
|
|
106
139
|
with:
|
|
107
140
|
version: ${{ env.EMSCRIPTEN_VERSION }}
|
|
108
|
-
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
|
141
|
+
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
109
142
|
|
|
110
|
-
- name:
|
|
111
|
-
run:
|
|
112
|
-
|
|
143
|
+
- name: Install dependencies
|
|
144
|
+
run: sudo apt-get install libltdl-dev
|
|
145
|
+
|
|
146
|
+
- name: Build
|
|
147
|
+
run: ./testsuite/emscripten/build.sh
|
|
148
|
+
env:
|
|
149
|
+
TARGET_HOST: ${{ matrix.target.host }}
|
|
150
|
+
EXTRA_CONFIGURE_FLAGS: ${{ matrix.target.configureflags }}
|
|
113
151
|
|
|
114
|
-
- name:
|
|
152
|
+
- name: Build tests
|
|
115
153
|
run: |
|
|
116
154
|
cp -r testsuite/libffi.call testsuite/libffi.call.test
|
|
117
155
|
cp -r testsuite/libffi.closures testsuite/libffi.closures.test
|
|
118
|
-
./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test
|
|
119
|
-
./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test
|
|
156
|
+
./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test
|
|
157
|
+
./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test
|
|
158
|
+
env:
|
|
159
|
+
EXTRA_CFLAGS: ${{ matrix.target.testflags }}
|
|
160
|
+
EXTRA_LD_FLAGS: ${{ matrix.target.testflags }}
|
|
120
161
|
|
|
121
162
|
- name: Store artifacts
|
|
122
|
-
uses: actions/upload-artifact@
|
|
163
|
+
uses: actions/upload-artifact@v4
|
|
123
164
|
with:
|
|
124
|
-
name: built-tests
|
|
125
|
-
path:
|
|
126
|
-
./testsuite/libffi.c*/
|
|
165
|
+
name: built-tests-${{ matrix.target.name }}
|
|
166
|
+
path: ./testsuite/libffi.c*/
|
|
127
167
|
|
|
128
168
|
test:
|
|
129
169
|
strategy:
|
|
130
170
|
matrix:
|
|
131
|
-
|
|
171
|
+
target:
|
|
172
|
+
- name: wasm32
|
|
173
|
+
- name: wasm64
|
|
174
|
+
- name: wasm64-2
|
|
132
175
|
browser: ["chrome"]
|
|
133
176
|
# FIXME: selenium can't find gecko driver for "firefox"
|
|
134
|
-
runs-on: ubuntu-
|
|
177
|
+
runs-on: ubuntu-24.04
|
|
135
178
|
needs: [build]
|
|
136
179
|
steps:
|
|
137
180
|
- name: Checkout
|
|
138
|
-
uses: actions/checkout@
|
|
181
|
+
uses: actions/checkout@v4
|
|
139
182
|
|
|
140
183
|
- name: Download build artifact
|
|
141
|
-
uses: actions/download-artifact@
|
|
184
|
+
uses: actions/download-artifact@v4
|
|
142
185
|
with:
|
|
143
|
-
name: built-tests
|
|
186
|
+
name: built-tests-${{ matrix.target.name }}
|
|
144
187
|
path: ./testsuite/
|
|
145
188
|
|
|
146
|
-
- uses: conda-incubator/setup-miniconda@
|
|
189
|
+
- uses: conda-incubator/setup-miniconda@v3
|
|
147
190
|
with:
|
|
148
191
|
activate-environment: pyodide-env
|
|
149
192
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
150
193
|
channels: conda-forge
|
|
194
|
+
|
|
151
195
|
- name: Install test dependencies
|
|
152
|
-
run:
|
|
153
|
-
pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
|
|
196
|
+
run: pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
|
|
154
197
|
|
|
155
|
-
- name:
|
|
198
|
+
- name: Run tests
|
|
156
199
|
run: |
|
|
157
200
|
cd testsuite/emscripten/
|
|
158
201
|
mkdir test-results
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
on:
|
|
2
|
+
issues:
|
|
3
|
+
types: [opened]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
label_issue_job:
|
|
7
|
+
permissions: write-all
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
name: Label new issue
|
|
10
|
+
steps:
|
|
11
|
+
- id: label-new-issue
|
|
12
|
+
uses: atgreen/gail-issue-labeler-action@master
|
|
13
|
+
with:
|
|
14
|
+
llm_api_key: ${{ secrets.OPENAI_KEY }}
|
|
15
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: snapshot-dist-tarball
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [ master ]
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
dist:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Install tools
|
|
12
|
+
run: |
|
|
13
|
+
sudo apt update
|
|
14
|
+
sudo apt install texlive texinfo autoconf automake libtool libltdl-dev
|
|
15
|
+
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with: {fetch-depth: 0}
|
|
18
|
+
|
|
19
|
+
- name: Compute snapshot VERSION
|
|
20
|
+
id: ver
|
|
21
|
+
run: |
|
|
22
|
+
DESC=$(git describe --long --tags --match 'v[0-9]*' 2>/dev/null || echo "")
|
|
23
|
+
VERSION=$(echo "$DESC" | sed -E 's/^v//; s/-([0-9]+)-g/\.\1+g/')
|
|
24
|
+
if [[ -z "$VERSION" || "$VERSION" == "$DESC" ]]; then
|
|
25
|
+
VERSION="3.5.1-dev.0+g$(git rev-parse --short HEAD)"
|
|
26
|
+
fi
|
|
27
|
+
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
|
28
|
+
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
|
29
|
+
|
|
30
|
+
- name: Patch configure.ac
|
|
31
|
+
run: |
|
|
32
|
+
sed -Ei "s/^(AC_INIT\(\[libffi\],\s*\[)[^]]+/\1${VERSION}/" configure.ac
|
|
33
|
+
sed -Ei "s/^(FFI_VERSION_STRING=\")[^\"]+/\1${VERSION}/" configure.ac
|
|
34
|
+
|
|
35
|
+
- run: autoreconf -fi
|
|
36
|
+
- run: ./configure
|
|
37
|
+
- run: make dist # produces libffi-${VERSION}.tar.gz
|
|
38
|
+
|
|
39
|
+
- name: Wipe old snapshot assets
|
|
40
|
+
uses: mknejp/delete-release-assets@v1
|
|
41
|
+
with:
|
|
42
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
43
|
+
tag: snapshots # ← whatever tag your nightly release uses
|
|
44
|
+
fail-if-no-assets: false
|
|
45
|
+
assets: |
|
|
46
|
+
libffi-*.tar.*
|
|
47
|
+
libffi-*.zip
|
|
48
|
+
|
|
49
|
+
- name: Create (or update) “snapshots” release
|
|
50
|
+
uses: softprops/action-gh-release@v2
|
|
51
|
+
with:
|
|
52
|
+
tag_name: snapshots
|
|
53
|
+
prerelease: true
|
|
54
|
+
body: "Snapshot built from ${{ github.sha }}"
|
|
55
|
+
files: libffi-${{ env.VERSION }}.tar.*
|
data/ext/ffi_c/libffi/LICENSE
CHANGED
|
@@ -4,6 +4,10 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
|
|
|
4
4
|
|
|
5
5
|
ACLOCAL_AMFLAGS = -I m4
|
|
6
6
|
|
|
7
|
+
# Alias required by AX_ENABLE_BUILDDIR / config-ml
|
|
8
|
+
.PHONY: all-configured
|
|
9
|
+
all-configured: all
|
|
10
|
+
|
|
7
11
|
SUBDIRS = include testsuite man
|
|
8
12
|
if BUILD_DOCS
|
|
9
13
|
## This hack is needed because it doesn't seem possible to make a
|
|
@@ -14,15 +18,15 @@ if BUILD_DOCS
|
|
|
14
18
|
SUBDIRS += doc
|
|
15
19
|
endif
|
|
16
20
|
|
|
17
|
-
EXTRA_DIST = LICENSE ChangeLog.old
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
EXTRA_DIST = LICENSE ChangeLog.old \
|
|
22
|
+
m4/libtool.m4 m4/lt~obsolete.m4 \
|
|
23
|
+
m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
|
|
24
|
+
m4/ltversion.m4 src/debug.c msvcc.sh \
|
|
25
|
+
generate-darwin-source-and-headers.py \
|
|
26
|
+
libffi.xcodeproj/project.pbxproj \
|
|
27
|
+
src/powerpc/t-aix \
|
|
28
|
+
libtool-ldflags libtool-version configure.host README.md \
|
|
29
|
+
libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
|
|
26
30
|
|
|
27
31
|
# local.exp is generated by configure
|
|
28
32
|
DISTCLEANFILES = local.exp
|
|
@@ -55,14 +59,15 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
|
|
|
55
59
|
src/m32r/ffitarget.h src/m68k/ffitarget.h \
|
|
56
60
|
src/m88k/ffitarget.h src/metag/ffitarget.h \
|
|
57
61
|
src/microblaze/ffitarget.h src/mips/ffitarget.h \
|
|
58
|
-
src/moxie/ffitarget.h
|
|
62
|
+
src/moxie/ffitarget.h \
|
|
59
63
|
src/or1k/ffitarget.h src/pa/ffitarget.h \
|
|
60
64
|
src/powerpc/ffitarget.h src/powerpc/asm.h \
|
|
61
|
-
src/powerpc/ffi_powerpc.h src/
|
|
65
|
+
src/powerpc/ffi_powerpc.h src/powerpc/internal.h \
|
|
66
|
+
src/riscv/ffitarget.h src/riscv/internal.h \
|
|
62
67
|
src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
|
|
63
68
|
src/sh64/ffitarget.h src/sparc/ffitarget.h \
|
|
64
69
|
src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
|
|
65
|
-
src/
|
|
70
|
+
src/wasm/ffitarget.h \
|
|
66
71
|
src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
|
|
67
72
|
src/x86/asmnames.h src/xtensa/ffitarget.h src/dlmalloc.c \
|
|
68
73
|
src/kvx/ffitarget.h src/kvx/asm.h \
|
|
@@ -80,7 +85,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
|
|
|
80
85
|
src/metag/ffi.c src/metag/sysv.S src/microblaze/ffi.c \
|
|
81
86
|
src/microblaze/sysv.S src/mips/ffi.c src/mips/o32.S \
|
|
82
87
|
src/mips/n32.S src/moxie/ffi.c src/moxie/eabi.S \
|
|
83
|
-
src/
|
|
88
|
+
src/or1k/ffi.c \
|
|
84
89
|
src/or1k/sysv.S src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
|
85
90
|
src/pa/hpux64.S src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
|
|
86
91
|
src/powerpc/ffi_linux64.c src/powerpc/sysv.S \
|
|
@@ -93,7 +98,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
|
|
|
93
98
|
src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
|
|
94
99
|
src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
|
|
95
100
|
src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
|
|
96
|
-
src/
|
|
101
|
+
src/wasm/ffi.c \
|
|
97
102
|
src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
|
|
98
103
|
src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
|
|
99
104
|
src/xtensa/ffi.c src/xtensa/sysv.S src/kvx/ffi.c \
|
|
@@ -146,7 +151,7 @@ libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script
|
|
|
146
151
|
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
|
|
147
152
|
|
|
148
153
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
|
149
|
-
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
|
154
|
+
AM_CCASFLAGS = '$(AM_CPPFLAGS)'
|
|
150
155
|
|
|
151
156
|
dist-hook:
|
|
152
157
|
d=`(cd $(distdir); pwd)`; (cd doc; make pdf; cp *.pdf $$d/doc)
|