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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +25 -0
  4. data/Gemfile +7 -4
  5. data/README.md +1 -0
  6. data/Rakefile +7 -4
  7. data/Steepfile +8 -0
  8. data/ext/ffi_c/DynamicLibrary.c +1 -1
  9. data/ext/ffi_c/Function.c +2 -0
  10. data/ext/ffi_c/MethodHandle.c +4 -2
  11. data/ext/ffi_c/libffi/.ci/Containerfile.ppc64le +12 -0
  12. data/ext/ffi_c/libffi/.ci/build.sh +38 -33
  13. data/ext/ffi_c/libffi/.ci/install.sh +46 -50
  14. data/ext/ffi_c/libffi/.ci/site.exp +6 -0
  15. data/ext/ffi_c/libffi/.gail-labels +44 -0
  16. data/ext/ffi_c/libffi/.github/workflows/build.yml +212 -333
  17. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +58 -3
  18. data/ext/ffi_c/libffi/.github/workflows/label-new-issue.yaml +15 -0
  19. data/ext/ffi_c/libffi/.github/workflows/tarball.yml +55 -0
  20. data/ext/ffi_c/libffi/LICENSE +1 -1
  21. data/ext/ffi_c/libffi/Makefile.am +17 -13
  22. data/ext/ffi_c/libffi/Makefile.in +37 -30
  23. data/ext/ffi_c/libffi/README.md +22 -3
  24. data/ext/ffi_c/libffi/configure +105 -121
  25. data/ext/ffi_c/libffi/configure.ac +21 -8
  26. data/ext/ffi_c/libffi/configure.host +6 -1
  27. data/ext/ffi_c/libffi/doc/Makefile.in +3 -0
  28. data/ext/ffi_c/libffi/doc/libffi.texi +24 -1
  29. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  30. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -28
  31. data/ext/ffi_c/libffi/include/Makefile.in +3 -0
  32. data/ext/ffi_c/libffi/include/ffi.h.in +19 -1
  33. data/ext/ffi_c/libffi/libffi.map.in +13 -1
  34. data/ext/ffi_c/libffi/libtool-version +1 -1
  35. data/ext/ffi_c/libffi/m4/asmcfi.m4 +28 -11
  36. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +13 -3
  37. data/ext/ffi_c/libffi/man/Makefile.in +3 -0
  38. data/ext/ffi_c/libffi/src/aarch64/sysv.S +7 -1
  39. data/ext/ffi_c/libffi/src/arm/sysv.S +1 -1
  40. data/ext/ffi_c/libffi/src/pa/linux.S +4 -0
  41. data/ext/ffi_c/libffi/src/powerpc/ffi.c +6 -0
  42. data/ext/ffi_c/libffi/src/riscv/ffi.c +39 -16
  43. data/ext/ffi_c/libffi/src/riscv/internal.h +7 -0
  44. data/ext/ffi_c/libffi/src/riscv/sysv.S +24 -0
  45. data/ext/ffi_c/libffi/src/tramp.c +6 -1
  46. data/ext/ffi_c/libffi/src/types.c +23 -1
  47. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffi.c +157 -54
  48. data/ext/ffi_c/libffi/src/{wasm32 → wasm}/ffitarget.h +17 -0
  49. data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -3
  50. data/ext/ffi_c/libffi/src/x86/sysv.S +1 -3
  51. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +1 -3
  52. data/ext/ffi_c/libffi/testsuite/Makefile.am +3 -2
  53. data/ext/ffi_c/libffi/testsuite/Makefile.in +6 -2
  54. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +2 -2
  55. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +4 -4
  56. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +269 -256
  57. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +1 -1
  58. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +3 -0
  59. data/ext/ffi_c/libffi/testsuite/libffi.call/longjmp.c +60 -0
  60. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +1 -1
  61. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +1 -2
  62. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +2 -0
  63. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +2 -0
  64. data/ext/ffi_c/libffi/testsuite/libffi.threads/ffitest.h +1 -0
  65. data/ext/ffi_c/libffi/testsuite/libffi.threads/threads.exp +50 -0
  66. data/ext/ffi_c/libffi/testsuite/libffi.threads/tsan.c +74 -0
  67. data/ext/ffi_c/libffi.mk +5 -0
  68. data/ffi.gemspec +4 -5
  69. data/lib/ffi/autopointer.rb +6 -0
  70. data/lib/ffi/compat.rb +11 -0
  71. data/lib/ffi/function.rb +23 -0
  72. data/lib/ffi/library.rb +19 -3
  73. data/lib/ffi/struct_by_reference.rb +1 -1
  74. data/lib/ffi/version.rb +1 -1
  75. data/samples/hello_ractor.rb +9 -1
  76. data/samples/qsort_ractor.rb +9 -1
  77. data/sig/ffi/auto_pointer.rbs +1 -1
  78. data/sig/ffi/errno.rbs +8 -0
  79. data/sig/ffi/platform.rbs +49 -0
  80. data/sig/ffi/struct.rbs +2 -2
  81. data/sig/ffi/struct_by_reference.rbs +1 -1
  82. data/sig/ffi.rbs +4 -1
  83. data.tar.gz.sig +0 -0
  84. metadata +33 -79
  85. metadata.gz.sig +0 -0
  86. data/ext/ffi_c/libffi/.appveyor/site.exp +0 -16
  87. data/ext/ffi_c/libffi/.appveyor.yml +0 -84
  88. data/lib/ffi/tools/types_generator.rb +0 -137
  89. data/rakelib/ffi_gem_helper.rb +0 -65
  90. /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: 3.1.58
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.*
@@ -1,4 +1,4 @@
1
- libffi - Copyright (c) 1996-2024 Anthony Green, Red Hat, Inc and others.
1
+ libffi - Copyright (c) 1996-2025 Anthony Green, Red Hat, Inc and others.
2
2
  See source files for details.
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining
@@ -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
- m4/libtool.m4 m4/lt~obsolete.m4 \
19
- m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
20
- m4/ltversion.m4 src/debug.c msvcc.sh \
21
- generate-darwin-source-and-headers.py \
22
- libffi.xcodeproj/project.pbxproj \
23
- src/powerpc/t-aix \
24
- libtool-ldflags libtool-version configure.host README.md \
25
- libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
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/wasm32/ffitarget.h \
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/wasm32/ffi.c \
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/wasm32/$(DEPDIR)/ffi.Plo \
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
- m4/libtool.m4 m4/lt~obsolete.m4 \
533
- m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
534
- m4/ltversion.m4 src/debug.c msvcc.sh \
535
- generate-darwin-source-and-headers.py \
536
- libffi.xcodeproj/project.pbxproj \
537
- src/powerpc/t-aix \
538
- libtool-ldflags libtool-version configure.host README.md \
539
- libffi.map.in LICENSE-BUILDTOOLS msvc_build make_sunver.pl
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/wasm32/ffitarget.h \
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/wasm32/ffi.c \
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/wasm32/$(am__dirstamp):
1054
- @$(MKDIR_P) src/wasm32
1055
- @: > src/wasm32/$(am__dirstamp)
1056
- src/wasm32/$(DEPDIR)/$(am__dirstamp):
1057
- @$(MKDIR_P) src/wasm32/$(DEPDIR)
1058
- @: > src/wasm32/$(DEPDIR)/$(am__dirstamp)
1059
- src/wasm32/ffi.lo: src/wasm32/$(am__dirstamp) \
1060
- src/wasm32/$(DEPDIR)/$(am__dirstamp)
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/wasm32/*.$(OBJEXT)
1173
- -rm -f src/wasm32/*.lo
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/wasm32/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
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/wasm32/.libs src/wasm32/_libs
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/wasm32/$(DEPDIR)/$(am__dirstamp)
1793
- -rm -f src/wasm32/$(am__dirstamp)
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/wasm32/$(DEPDIR)/ffi.Plo
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/wasm32/$(DEPDIR)/ffi.Plo
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 \
@@ -1,8 +1,7 @@
1
1
  Status
2
2
  ======
3
3
 
4
- libffi-3.4.8 was released on April 9, 2025. Check the libffi web
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 libtool.
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