ffi 1.17.2 → 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 +25 -0
- data/Gemfile +7 -4
- 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 +58 -3
- 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 +17 -13
- data/ext/ffi_c/libffi/Makefile.in +37 -30
- data/ext/ffi_c/libffi/README.md +22 -3
- data/ext/ffi_c/libffi/configure +105 -121
- data/ext/ffi_c/libffi/configure.ac +21 -8
- data/ext/ffi_c/libffi/configure.host +6 -1
- data/ext/ffi_c/libffi/doc/Makefile.in +3 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +24 -1
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -28
- data/ext/ffi_c/libffi/include/Makefile.in +3 -0
- data/ext/ffi_c/libffi/include/ffi.h.in +19 -1
- 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 +3 -0
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +7 -1
- data/ext/ffi_c/libffi/src/arm/sysv.S +1 -1
- data/ext/ffi_c/libffi/src/pa/linux.S +4 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +6 -0
- 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/tramp.c +6 -1
- data/ext/ffi_c/libffi/src/types.c +23 -1
- data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffi.c +157 -54
- data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffitarget.h +17 -0
- 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 +3 -2
- data/ext/ffi_c/libffi/testsuite/Makefile.in +6 -2
- data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +2 -2
- data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +4 -4
- 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/ffitest.h +3 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/longjmp.c +60 -0
- data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.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.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 +33 -79
- 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/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
|
@@ -19,7 +19,7 @@ env:
|
|
|
19
19
|
# "info" field, or in Makefile.envs:
|
|
20
20
|
# https://github.com/pyodide/pyodide/blob/main/Makefile.envs#L2
|
|
21
21
|
PYTHON_VERSION: 3.12.7
|
|
22
|
-
EMSCRIPTEN_VERSION:
|
|
22
|
+
EMSCRIPTEN_VERSION: 4.0.10
|
|
23
23
|
EM_CACHE_FOLDER: emsdk-cache
|
|
24
24
|
|
|
25
25
|
jobs:
|
|
@@ -39,6 +39,21 @@ jobs:
|
|
|
39
39
|
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
40
40
|
|
|
41
41
|
test-dejagnu:
|
|
42
|
+
strategy:
|
|
43
|
+
matrix:
|
|
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
|
|
42
57
|
runs-on: ubuntu-24.04
|
|
43
58
|
needs: [setup-emsdk-cache]
|
|
44
59
|
steps:
|
|
@@ -62,11 +77,26 @@ jobs:
|
|
|
62
77
|
version: ${{ env.EMSCRIPTEN_VERSION }}
|
|
63
78
|
actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
|
|
64
79
|
|
|
80
|
+
- name: Setup node.js
|
|
81
|
+
uses: actions/setup-node@v4
|
|
82
|
+
with:
|
|
83
|
+
node-version: 24
|
|
84
|
+
|
|
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
|
+
|
|
65
90
|
- name: Install dependencies
|
|
66
91
|
run: sudo apt-get install dejagnu libltdl-dev
|
|
67
92
|
|
|
68
93
|
- name: Run tests
|
|
69
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 }}
|
|
70
100
|
|
|
71
101
|
- name: Install rlgl and run
|
|
72
102
|
run: |
|
|
@@ -77,6 +107,21 @@ jobs:
|
|
|
77
107
|
exit $?
|
|
78
108
|
|
|
79
109
|
build:
|
|
110
|
+
strategy:
|
|
111
|
+
matrix:
|
|
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
|
|
80
125
|
runs-on: ubuntu-24.04
|
|
81
126
|
needs: [setup-emsdk-cache]
|
|
82
127
|
steps:
|
|
@@ -100,6 +145,9 @@ jobs:
|
|
|
100
145
|
|
|
101
146
|
- name: Build
|
|
102
147
|
run: ./testsuite/emscripten/build.sh
|
|
148
|
+
env:
|
|
149
|
+
TARGET_HOST: ${{ matrix.target.host }}
|
|
150
|
+
EXTRA_CONFIGURE_FLAGS: ${{ matrix.target.configureflags }}
|
|
103
151
|
|
|
104
152
|
- name: Build tests
|
|
105
153
|
run: |
|
|
@@ -107,16 +155,23 @@ jobs:
|
|
|
107
155
|
cp -r testsuite/libffi.closures testsuite/libffi.closures.test
|
|
108
156
|
./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test
|
|
109
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 }}
|
|
110
161
|
|
|
111
162
|
- name: Store artifacts
|
|
112
163
|
uses: actions/upload-artifact@v4
|
|
113
164
|
with:
|
|
114
|
-
name: built-tests
|
|
165
|
+
name: built-tests-${{ matrix.target.name }}
|
|
115
166
|
path: ./testsuite/libffi.c*/
|
|
116
167
|
|
|
117
168
|
test:
|
|
118
169
|
strategy:
|
|
119
170
|
matrix:
|
|
171
|
+
target:
|
|
172
|
+
- name: wasm32
|
|
173
|
+
- name: wasm64
|
|
174
|
+
- name: wasm64-2
|
|
120
175
|
browser: ["chrome"]
|
|
121
176
|
# FIXME: selenium can't find gecko driver for "firefox"
|
|
122
177
|
runs-on: ubuntu-24.04
|
|
@@ -128,7 +183,7 @@ jobs:
|
|
|
128
183
|
- name: Download build artifact
|
|
129
184
|
uses: actions/download-artifact@v4
|
|
130
185
|
with:
|
|
131
|
-
name: built-tests
|
|
186
|
+
name: built-tests-${{ matrix.target.name }}
|
|
132
187
|
path: ./testsuite/
|
|
133
188
|
|
|
134
189
|
- uses: conda-incubator/setup-miniconda@v3
|
|
@@ -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
|
|
@@ -59,11 +63,11 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
|
|
|
59
63
|
src/or1k/ffitarget.h src/pa/ffitarget.h \
|
|
60
64
|
src/powerpc/ffitarget.h src/powerpc/asm.h \
|
|
61
65
|
src/powerpc/ffi_powerpc.h src/powerpc/internal.h \
|
|
62
|
-
src/riscv/ffitarget.h
|
|
66
|
+
src/riscv/ffitarget.h src/riscv/internal.h \
|
|
63
67
|
src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
|
|
64
68
|
src/sh64/ffitarget.h src/sparc/ffitarget.h \
|
|
65
69
|
src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
|
|
66
|
-
src/
|
|
70
|
+
src/wasm/ffitarget.h \
|
|
67
71
|
src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
|
|
68
72
|
src/x86/asmnames.h src/xtensa/ffitarget.h src/dlmalloc.c \
|
|
69
73
|
src/kvx/ffitarget.h src/kvx/asm.h \
|
|
@@ -94,7 +98,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
|
|
|
94
98
|
src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
|
|
95
99
|
src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
|
|
96
100
|
src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
|
|
97
|
-
src/
|
|
101
|
+
src/wasm/ffi.c \
|
|
98
102
|
src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
|
|
99
103
|
src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
|
|
100
104
|
src/xtensa/ffi.c src/xtensa/sysv.S src/kvx/ffi.c \
|
|
@@ -147,7 +151,7 @@ libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script
|
|
|
147
151
|
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
|
|
148
152
|
|
|
149
153
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
|
150
|
-
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
|
154
|
+
AM_CCASFLAGS = '$(AM_CPPFLAGS)'
|
|
151
155
|
|
|
152
156
|
dist-hook:
|
|
153
157
|
d=`(cd $(distdir); pwd)`; (cd doc; make pdf; cp *.pdf $$d/doc)
|
|
@@ -243,7 +243,7 @@ am__depfiles_remade = src/$(DEPDIR)/closures.Plo \
|
|
|
243
243
|
src/sparc/$(DEPDIR)/ffi64.Plo src/sparc/$(DEPDIR)/v8.Plo \
|
|
244
244
|
src/sparc/$(DEPDIR)/v9.Plo src/tile/$(DEPDIR)/ffi.Plo \
|
|
245
245
|
src/tile/$(DEPDIR)/tile.Plo src/vax/$(DEPDIR)/elfbsd.Plo \
|
|
246
|
-
src/vax/$(DEPDIR)/ffi.Plo src/
|
|
246
|
+
src/vax/$(DEPDIR)/ffi.Plo src/wasm/$(DEPDIR)/ffi.Plo \
|
|
247
247
|
src/x86/$(DEPDIR)/ffi.Plo src/x86/$(DEPDIR)/ffi64.Plo \
|
|
248
248
|
src/x86/$(DEPDIR)/ffiw64.Plo src/x86/$(DEPDIR)/sysv.Plo \
|
|
249
249
|
src/x86/$(DEPDIR)/sysv_intel.Plo src/x86/$(DEPDIR)/unix64.Plo \
|
|
@@ -411,6 +411,8 @@ EGREP = @EGREP@
|
|
|
411
411
|
ETAGS = @ETAGS@
|
|
412
412
|
EXEEXT = @EXEEXT@
|
|
413
413
|
FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
|
|
414
|
+
FFI_VERSION_NUMBER = @FFI_VERSION_NUMBER@
|
|
415
|
+
FFI_VERSION_STRING = @FFI_VERSION_STRING@
|
|
414
416
|
FGREP = @FGREP@
|
|
415
417
|
FILECMD = @FILECMD@
|
|
416
418
|
GREP = @GREP@
|
|
@@ -461,6 +463,7 @@ TARGET = @TARGET@
|
|
|
461
463
|
TARGETDIR = @TARGETDIR@
|
|
462
464
|
TARGET_OBJ = @TARGET_OBJ@
|
|
463
465
|
VERSION = @VERSION@
|
|
466
|
+
WASM64_MEMORY64 = @WASM64_MEMORY64@
|
|
464
467
|
abs_builddir = @abs_builddir@
|
|
465
468
|
abs_srcdir = @abs_srcdir@
|
|
466
469
|
abs_top_builddir = @abs_top_builddir@
|
|
@@ -528,15 +531,15 @@ top_srcdir = @top_srcdir@
|
|
|
528
531
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
|
529
532
|
ACLOCAL_AMFLAGS = -I m4
|
|
530
533
|
SUBDIRS = include testsuite man $(am__append_1)
|
|
531
|
-
EXTRA_DIST = LICENSE ChangeLog.old
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
534
|
+
EXTRA_DIST = LICENSE ChangeLog.old \
|
|
535
|
+
m4/libtool.m4 m4/lt~obsolete.m4 \
|
|
536
|
+
m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
|
|
537
|
+
m4/ltversion.m4 src/debug.c msvcc.sh \
|
|
538
|
+
generate-darwin-source-and-headers.py \
|
|
539
|
+
libffi.xcodeproj/project.pbxproj \
|
|
540
|
+
src/powerpc/t-aix \
|
|
541
|
+
libtool-ldflags libtool-version configure.host README.md \
|
|
542
|
+
libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
|
|
540
543
|
|
|
541
544
|
|
|
542
545
|
# local.exp is generated by configure
|
|
@@ -564,11 +567,11 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
|
|
|
564
567
|
src/or1k/ffitarget.h src/pa/ffitarget.h \
|
|
565
568
|
src/powerpc/ffitarget.h src/powerpc/asm.h \
|
|
566
569
|
src/powerpc/ffi_powerpc.h src/powerpc/internal.h \
|
|
567
|
-
src/riscv/ffitarget.h
|
|
570
|
+
src/riscv/ffitarget.h src/riscv/internal.h \
|
|
568
571
|
src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
|
|
569
572
|
src/sh64/ffitarget.h src/sparc/ffitarget.h \
|
|
570
573
|
src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
|
|
571
|
-
src/
|
|
574
|
+
src/wasm/ffitarget.h \
|
|
572
575
|
src/x86/ffitarget.h src/x86/internal.h src/x86/internal64.h \
|
|
573
576
|
src/x86/asmnames.h src/xtensa/ffitarget.h src/dlmalloc.c \
|
|
574
577
|
src/kvx/ffitarget.h src/kvx/asm.h \
|
|
@@ -599,7 +602,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
|
|
|
599
602
|
src/sh64/sysv.S src/sparc/ffi.c src/sparc/ffi64.c \
|
|
600
603
|
src/sparc/v8.S src/sparc/v9.S src/tile/ffi.c src/tile/tile.S \
|
|
601
604
|
src/vax/ffi.c src/vax/elfbsd.S src/x86/ffi.c src/x86/sysv.S \
|
|
602
|
-
src/
|
|
605
|
+
src/wasm/ffi.c \
|
|
603
606
|
src/x86/ffiw64.c src/x86/win64.S src/x86/ffi64.c \
|
|
604
607
|
src/x86/unix64.S src/x86/sysv_intel.S src/x86/win64_intel.S \
|
|
605
608
|
src/xtensa/ffi.c src/xtensa/sysv.S src/kvx/ffi.c \
|
|
@@ -623,7 +626,7 @@ libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
|
|
623
626
|
libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
|
624
627
|
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
|
|
625
628
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
|
626
|
-
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
|
629
|
+
AM_CCASFLAGS = '$(AM_CPPFLAGS)'
|
|
627
630
|
all: fficonfig.h
|
|
628
631
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
|
629
632
|
|
|
@@ -1050,14 +1053,14 @@ src/x86/ffi.lo: src/x86/$(am__dirstamp) \
|
|
|
1050
1053
|
src/x86/$(DEPDIR)/$(am__dirstamp)
|
|
1051
1054
|
src/x86/sysv.lo: src/x86/$(am__dirstamp) \
|
|
1052
1055
|
src/x86/$(DEPDIR)/$(am__dirstamp)
|
|
1053
|
-
src/
|
|
1054
|
-
@$(MKDIR_P) src/
|
|
1055
|
-
@: > src/
|
|
1056
|
-
src/
|
|
1057
|
-
@$(MKDIR_P) src/
|
|
1058
|
-
@: > src/
|
|
1059
|
-
src/
|
|
1060
|
-
src/
|
|
1056
|
+
src/wasm/$(am__dirstamp):
|
|
1057
|
+
@$(MKDIR_P) src/wasm
|
|
1058
|
+
@: > src/wasm/$(am__dirstamp)
|
|
1059
|
+
src/wasm/$(DEPDIR)/$(am__dirstamp):
|
|
1060
|
+
@$(MKDIR_P) src/wasm/$(DEPDIR)
|
|
1061
|
+
@: > src/wasm/$(DEPDIR)/$(am__dirstamp)
|
|
1062
|
+
src/wasm/ffi.lo: src/wasm/$(am__dirstamp) \
|
|
1063
|
+
src/wasm/$(DEPDIR)/$(am__dirstamp)
|
|
1061
1064
|
src/x86/ffiw64.lo: src/x86/$(am__dirstamp) \
|
|
1062
1065
|
src/x86/$(DEPDIR)/$(am__dirstamp)
|
|
1063
1066
|
src/x86/win64.lo: src/x86/$(am__dirstamp) \
|
|
@@ -1169,8 +1172,8 @@ mostlyclean-compile:
|
|
|
1169
1172
|
-rm -f src/tile/*.lo
|
|
1170
1173
|
-rm -f src/vax/*.$(OBJEXT)
|
|
1171
1174
|
-rm -f src/vax/*.lo
|
|
1172
|
-
-rm -f src/
|
|
1173
|
-
-rm -f src/
|
|
1175
|
+
-rm -f src/wasm/*.$(OBJEXT)
|
|
1176
|
+
-rm -f src/wasm/*.lo
|
|
1174
1177
|
-rm -f src/x86/*.$(OBJEXT)
|
|
1175
1178
|
-rm -f src/x86/*.lo
|
|
1176
1179
|
-rm -f src/xtensa/*.$(OBJEXT)
|
|
@@ -1261,7 +1264,7 @@ distclean-compile:
|
|
|
1261
1264
|
@AMDEP_TRUE@@am__include@ @am__quote@src/tile/$(DEPDIR)/tile.Plo@am__quote@ # am--include-marker
|
|
1262
1265
|
@AMDEP_TRUE@@am__include@ @am__quote@src/vax/$(DEPDIR)/elfbsd.Plo@am__quote@ # am--include-marker
|
|
1263
1266
|
@AMDEP_TRUE@@am__include@ @am__quote@src/vax/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
|
|
1264
|
-
@AMDEP_TRUE@@am__include@ @am__quote@src/
|
|
1267
|
+
@AMDEP_TRUE@@am__include@ @am__quote@src/wasm/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
|
|
1265
1268
|
@AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
|
|
1266
1269
|
@AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffi64.Plo@am__quote@ # am--include-marker
|
|
1267
1270
|
@AMDEP_TRUE@@am__include@ @am__quote@src/x86/$(DEPDIR)/ffiw64.Plo@am__quote@ # am--include-marker
|
|
@@ -1362,7 +1365,7 @@ clean-libtool:
|
|
|
1362
1365
|
-rm -rf src/sparc/.libs src/sparc/_libs
|
|
1363
1366
|
-rm -rf src/tile/.libs src/tile/_libs
|
|
1364
1367
|
-rm -rf src/vax/.libs src/vax/_libs
|
|
1365
|
-
-rm -rf src/
|
|
1368
|
+
-rm -rf src/wasm/.libs src/wasm/_libs
|
|
1366
1369
|
-rm -rf src/x86/.libs src/x86/_libs
|
|
1367
1370
|
-rm -rf src/xtensa/.libs src/xtensa/_libs
|
|
1368
1371
|
|
|
@@ -1789,8 +1792,8 @@ distclean-generic:
|
|
|
1789
1792
|
-rm -f src/tile/$(am__dirstamp)
|
|
1790
1793
|
-rm -f src/vax/$(DEPDIR)/$(am__dirstamp)
|
|
1791
1794
|
-rm -f src/vax/$(am__dirstamp)
|
|
1792
|
-
-rm -f src/
|
|
1793
|
-
-rm -f src/
|
|
1795
|
+
-rm -f src/wasm/$(DEPDIR)/$(am__dirstamp)
|
|
1796
|
+
-rm -f src/wasm/$(am__dirstamp)
|
|
1794
1797
|
-rm -f src/x86/$(DEPDIR)/$(am__dirstamp)
|
|
1795
1798
|
-rm -f src/x86/$(am__dirstamp)
|
|
1796
1799
|
-rm -f src/xtensa/$(DEPDIR)/$(am__dirstamp)
|
|
@@ -1889,7 +1892,7 @@ distclean: distclean-recursive
|
|
|
1889
1892
|
-rm -f src/tile/$(DEPDIR)/tile.Plo
|
|
1890
1893
|
-rm -f src/vax/$(DEPDIR)/elfbsd.Plo
|
|
1891
1894
|
-rm -f src/vax/$(DEPDIR)/ffi.Plo
|
|
1892
|
-
-rm -f src/
|
|
1895
|
+
-rm -f src/wasm/$(DEPDIR)/ffi.Plo
|
|
1893
1896
|
-rm -f src/x86/$(DEPDIR)/ffi.Plo
|
|
1894
1897
|
-rm -f src/x86/$(DEPDIR)/ffi64.Plo
|
|
1895
1898
|
-rm -f src/x86/$(DEPDIR)/ffiw64.Plo
|
|
@@ -2029,7 +2032,7 @@ maintainer-clean: maintainer-clean-recursive
|
|
|
2029
2032
|
-rm -f src/tile/$(DEPDIR)/tile.Plo
|
|
2030
2033
|
-rm -f src/vax/$(DEPDIR)/elfbsd.Plo
|
|
2031
2034
|
-rm -f src/vax/$(DEPDIR)/ffi.Plo
|
|
2032
|
-
-rm -f src/
|
|
2035
|
+
-rm -f src/wasm/$(DEPDIR)/ffi.Plo
|
|
2033
2036
|
-rm -f src/x86/$(DEPDIR)/ffi.Plo
|
|
2034
2037
|
-rm -f src/x86/$(DEPDIR)/ffi64.Plo
|
|
2035
2038
|
-rm -f src/x86/$(DEPDIR)/ffiw64.Plo
|
|
@@ -2083,6 +2086,10 @@ uninstall-am: uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
|
|
|
2083
2086
|
|
|
2084
2087
|
.PRECIOUS: Makefile
|
|
2085
2088
|
|
|
2089
|
+
|
|
2090
|
+
# Alias required by AX_ENABLE_BUILDDIR / config-ml
|
|
2091
|
+
.PHONY: all-configured
|
|
2092
|
+
all-configured: all
|
|
2086
2093
|
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : libffi.map $(top_srcdir)/make_sunver.pl \
|
|
2087
2094
|
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD)
|
|
2088
2095
|
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/make_sunver.pl libffi.map \
|
data/ext/ffi_c/libffi/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
Status
|
|
2
2
|
======
|
|
3
3
|
|
|
4
|
-
libffi-3.
|
|
5
|
-
page for updates: <URL:http://sourceware.org/libffi/>.
|
|
4
|
+
libffi-3.5.2 was released on August 2, 2025.
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
What is libffi?
|
|
@@ -91,6 +90,9 @@ tested:
|
|
|
91
90
|
| RISC-V 64-bit | Linux | GCC |
|
|
92
91
|
| S390 | Linux | GCC |
|
|
93
92
|
| S390X | Linux | GCC |
|
|
93
|
+
| SH3 | Linux | GCC |
|
|
94
|
+
| SH4 | Linux | GCC |
|
|
95
|
+
| SH5/SH64 | Linux | GCC |
|
|
94
96
|
| SPARC | Linux | GCC |
|
|
95
97
|
| SPARC | Solaris | GCC |
|
|
96
98
|
| SPARC | Solaris | Oracle Solaris Studio C |
|
|
@@ -100,6 +102,7 @@ tested:
|
|
|
100
102
|
| TILE-Gx/TILEPro | Linux | GCC |
|
|
101
103
|
| VAX | OpenBSD/vax | GCC |
|
|
102
104
|
| WASM32 | Emscripten | EMCC |
|
|
105
|
+
| WASM64 | Emscripten | EMCC |
|
|
103
106
|
| X86 | FreeBSD | GCC |
|
|
104
107
|
| X86 | GNU HURD | GCC |
|
|
105
108
|
| X86 | Interix | GCC |
|
|
@@ -111,6 +114,7 @@ tested:
|
|
|
111
114
|
| X86 | Solaris | Oracle Solaris Studio C |
|
|
112
115
|
| X86 | Windows/Cygwin | GCC |
|
|
113
116
|
| X86 | Windows/MinGW | GCC |
|
|
117
|
+
| X86-64 | DragonFly BSD | GCC |
|
|
114
118
|
| X86-64 | FreeBSD | GCC |
|
|
115
119
|
| X86-64 | Linux | GCC |
|
|
116
120
|
| X86-64 | Linux/x32 | GCC |
|
|
@@ -135,7 +139,7 @@ compiler.
|
|
|
135
139
|
|
|
136
140
|
If you're building libffi directly from git hosted sources, configure
|
|
137
141
|
won't exist yet; run ./autogen.sh first. This will require that you
|
|
138
|
-
install autoconf, automake and
|
|
142
|
+
install autoconf, automake, libtool and texinfo.
|
|
139
143
|
|
|
140
144
|
You may want to tell configure where to install the libffi library and
|
|
141
145
|
header files. To do that, use the ``--prefix`` configure switch. Libffi
|
|
@@ -200,6 +204,21 @@ History
|
|
|
200
204
|
|
|
201
205
|
See the git log for details at http://github.com/libffi/libffi.
|
|
202
206
|
|
|
207
|
+
3.5.2 Aug-2-2025
|
|
208
|
+
Add wasm64 support.
|
|
209
|
+
Add DragonFly BSD support.
|
|
210
|
+
Ensure trampoline file descriptors are closed on exec.
|
|
211
|
+
|
|
212
|
+
3.5.1 Jun-10-2025
|
|
213
|
+
Fix symbol versioning error.
|
|
214
|
+
|
|
215
|
+
3.5.0 Jun-8-2025
|
|
216
|
+
Add FFI_VERSION_STRING and FFI_VERSION_NUMBER macros, as well
|
|
217
|
+
as ffi_get_version() and ffi_get_version_number() functions.
|
|
218
|
+
Add ffi_get_default_abi() and ffi_get_closure_size() functions.
|
|
219
|
+
Fix closures on powerpc64-linux when statically linking.
|
|
220
|
+
Mark the PA stack as non-executable.
|
|
221
|
+
|
|
203
222
|
3.4.8 Apr-9-2025
|
|
204
223
|
Add static trampoline support for powerpc-linux (32-bit SYSV BE),
|
|
205
224
|
powerpc64-linux (64-bit ELFv1 BE) and
|