ffi 1.17.1 → 1.17.2

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 (74) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +8 -0
  4. data/Gemfile +3 -1
  5. data/Rakefile +1 -1
  6. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +48 -60
  7. data/ext/ffi_c/libffi/Makefile.am +4 -3
  8. data/ext/ffi_c/libffi/Makefile.in +5 -25
  9. data/ext/ffi_c/libffi/README.md +19 -2
  10. data/ext/ffi_c/libffi/acinclude.m4 +6 -0
  11. data/ext/ffi_c/libffi/config.guess +80 -22
  12. data/ext/ffi_c/libffi/config.sub +161 -80
  13. data/ext/ffi_c/libffi/configure +968 -1266
  14. data/ext/ffi_c/libffi/configure.ac +9 -8
  15. data/ext/ffi_c/libffi/configure.host +0 -5
  16. data/ext/ffi_c/libffi/doc/Makefile.in +1 -0
  17. data/ext/ffi_c/libffi/doc/libffi.texi +3 -3
  18. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  19. data/ext/ffi_c/libffi/fficonfig.h.in +9 -9
  20. data/ext/ffi_c/libffi/include/Makefile.in +1 -0
  21. data/ext/ffi_c/libffi/include/ffi_cfi.h +2 -0
  22. data/ext/ffi_c/libffi/include/ffi_common.h +17 -0
  23. data/ext/ffi_c/libffi/man/Makefile.in +1 -0
  24. data/ext/ffi_c/libffi/src/aarch64/ffi.c +7 -4
  25. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +2 -2
  26. data/ext/ffi_c/libffi/src/aarch64/internal.h +63 -17
  27. data/ext/ffi_c/libffi/src/aarch64/sysv.S +16 -12
  28. data/ext/ffi_c/libffi/src/arc/arcompact.S +2 -2
  29. data/ext/ffi_c/libffi/src/arc/ffi.c +6 -2
  30. data/ext/ffi_c/libffi/src/closures.c +3 -3
  31. data/ext/ffi_c/libffi/src/dlmalloc.c +1 -0
  32. data/ext/ffi_c/libffi/src/mips/ffitarget.h +2 -4
  33. data/ext/ffi_c/libffi/src/mips/n32.S +4 -0
  34. data/ext/ffi_c/libffi/src/mips/o32.S +4 -0
  35. data/ext/ffi_c/libffi/src/or1k/ffi.c +2 -2
  36. data/ext/ffi_c/libffi/src/powerpc/ffi.c +13 -0
  37. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +26 -19
  38. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +26 -16
  39. data/ext/ffi_c/libffi/src/powerpc/internal.h +10 -0
  40. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +47 -0
  41. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +24 -0
  42. data/ext/ffi_c/libffi/src/prep_cif.c +1 -4
  43. data/ext/ffi_c/libffi/src/s390/ffi.c +28 -1
  44. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  45. data/ext/ffi_c/libffi/src/s390/sysv.S +38 -0
  46. data/ext/ffi_c/libffi/src/sparc/ffi.c +16 -0
  47. data/ext/ffi_c/libffi/src/wasm32/ffi.c +10 -262
  48. data/ext/ffi_c/libffi/src/x86/ffi.c +4 -1
  49. data/ext/ffi_c/libffi/src/x86/ffi64.c +4 -1
  50. data/ext/ffi_c/libffi/testsuite/Makefile.am +4 -3
  51. data/ext/ffi_c/libffi/testsuite/Makefile.in +5 -3
  52. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +4 -24
  53. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +8 -25
  54. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +3 -28
  55. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +2 -2
  56. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +2 -2
  57. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +2 -2
  58. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +2 -2
  59. data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +54 -0
  60. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +88 -0
  61. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +1 -0
  62. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +1 -0
  63. data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +31 -0
  64. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +1 -1
  65. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +1 -1
  66. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +1 -1
  67. data/lib/ffi/version.rb +1 -1
  68. data.tar.gz.sig +0 -0
  69. metadata +6 -6
  70. metadata.gz.sig +0 -0
  71. data/ext/ffi_c/libffi/.circleci/config.yml +0 -156
  72. data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
  73. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
  74. data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a6a87ee152caf4030d9a90bedcefece7f4717639dc96443727b1e1c492db617
4
- data.tar.gz: 722b6e07fb23b25c2ad2c2e426040e2fb3f929e6dda3c00c26ac7fbc7c7820aa
3
+ metadata.gz: '058d816e4da0c93950ccb7181f82c310f9faf3e934948e77f574d01ffcdf7aaa'
4
+ data.tar.gz: 0553df9cff19ffb4404dac629dac314f43f70f3cb647899e0cae687dd48631d7
5
5
  SHA512:
6
- metadata.gz: a4b65f1f9f9852a7d74c0739eb940f487a85354466b998caf4e637b20046c91a4338c389992de8d42118536624db2bbab4b4de799477af3591701e823355a69c
7
- data.tar.gz: 6877266da6f47d6d921b8535ee63737caefeb89a937489a1c4756273b87bdcfec93f13e5c9a4dd7c7c56a680d0b1822aecf0197b9b92f778778732cf9fa6556e
6
+ metadata.gz: ff675e518022c92374772bdfb8594e07940d0765c134ae076235c6e1c2fe886c091e736415ee0ba28ddd7c4aaf3768929fe27366aa43aaa2f3c250e4eaa7d2cd
7
+ data.tar.gz: 7fb6dd8b66f31369863914000c9484eb6cbf813195e25aeaf0a72a3a3eb3e8895f85c8c240686e744ee1bbe90492641e7ef65a1ebcc7d17195c58125c2138c8d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ 1.17.2 / 2025-04-15
2
+ -------------------
3
+
4
+ Fixed:
5
+ * #1144, #1145 Update libffi to 3.4.8 to fix installation issues on latest Macos on ARM64
6
+ * Various adjustments to run the specs cleanly on Ruby-3.5 master branch.
7
+
8
+
1
9
  1.17.1 / 2024-12-30
2
10
  -------------------
3
11
 
data/Gemfile CHANGED
@@ -1,11 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  group :development do
4
+ gem 'benchmark' # necessary on ruby-3.5+
4
5
  gem 'bigdecimal' # necessary on ruby-3.3+
5
6
  gem 'bundler', '>= 1.16', '< 3'
7
+ gem 'fiddle', platforms: %i[mri windows] # necessary on ruby-3.5+
6
8
  gem 'rake', '~> 13.0'
7
9
  gem 'rake-compiler', '~> 1.1'
8
- gem 'rake-compiler-dock', '~> 1.7.0'
10
+ gem 'rake-compiler-dock', '~> 1.9.0'
9
11
  gem 'rspec', '~> 3.0'
10
12
  end
11
13
 
data/Rakefile CHANGED
@@ -138,7 +138,7 @@ namespace "gem" do
138
138
  RakeCompilerDock.sh <<-EOT, platform: plat
139
139
  sudo apt-get update && sudo apt-get install -y libltdl-dev &&
140
140
  bundle --local &&
141
- rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=${RUBY_CC_VERSION/:2.4.0/}
141
+ rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=#{RakeCompilerDock.ruby_cc_version("~>2.5", "~>3.0")}
142
142
  EOT
143
143
  end
144
144
  end
@@ -13,13 +13,13 @@ on:
13
13
 
14
14
 
15
15
  env:
16
- PYODIDE_VERSION: 0.52.1
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.10.7
22
- EMSCRIPTEN_VERSION: 3.1.27
21
+ PYTHON_VERSION: 3.12.7
22
+ EMSCRIPTEN_VERSION: 3.1.58
23
23
  EM_CACHE_FOLDER: emsdk-cache
24
24
 
25
25
  jobs:
@@ -27,53 +27,46 @@ jobs:
27
27
  runs-on: ubuntu-22.04
28
28
  steps:
29
29
  - name: Setup cache
30
- id: cache-system-libraries
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
- - uses: mymindstorm/setup-emsdk@v12
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
- strategy:
43
- matrix:
44
- bigint: ["--wasm-bigint", ""]
45
- runs-on: ubuntu-22.04
42
+ runs-on: ubuntu-24.04
46
43
  needs: [setup-emsdk-cache]
47
44
  steps:
48
45
  - name: Checkout
49
- uses: actions/checkout@v3
46
+ uses: actions/checkout@v4
50
47
 
51
- - name: set up python
52
- id: setup-python
53
- uses: actions/setup-python@v4
48
+ - name: Setup Python
49
+ uses: actions/setup-python@v5
54
50
  with:
55
51
  python-version: ${{ env.PYTHON_VERSION }}
56
52
 
57
53
  - name: Setup cache
58
- id: cache-system-libraries
59
- uses: actions/cache@v3
54
+ uses: actions/cache@v4
60
55
  with:
61
- path: ${{env.EM_CACHE_FOLDER}}
62
- key: ${{env.EMSCRIPTEN_VERSION}}
56
+ path: ${{ env.EM_CACHE_FOLDER }}
57
+ key: ${{ env.EMSCRIPTEN_VERSION }}
63
58
 
64
- - uses: mymindstorm/setup-emsdk@v12
59
+ - name: Setup emsdk
60
+ uses: mymindstorm/setup-emsdk@v14
65
61
  with:
66
62
  version: ${{ env.EMSCRIPTEN_VERSION }}
67
- actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
63
+ actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
68
64
 
69
- - name: Install dejagnu
70
- shell: bash -l {0}
71
- run: |
72
- sudo apt install -y dejagnu
65
+ - name: Install dependencies
66
+ run: sudo apt-get install dejagnu libltdl-dev
73
67
 
74
- - name: run tests
75
- run: |
76
- testsuite/emscripten/node-tests.sh ${{ matrix.bigint }}
68
+ - name: Run tests
69
+ run: testsuite/emscripten/node-tests.sh
77
70
 
78
71
  - name: Install rlgl and run
79
72
  run: |
@@ -84,75 +77,70 @@ jobs:
84
77
  exit $?
85
78
 
86
79
  build:
87
- strategy:
88
- matrix:
89
- bigint: ["--wasm-bigint", ""]
90
- env:
91
- WASM_BIGINT: ${{ matrix.bigint }}
92
- runs-on: ubuntu-22.04
80
+ runs-on: ubuntu-24.04
93
81
  needs: [setup-emsdk-cache]
94
82
  steps:
95
83
  - name: Checkout
96
- uses: actions/checkout@v3
84
+ uses: actions/checkout@v4
97
85
 
98
86
  - name: Setup cache
99
- id: cache-system-libraries
100
- uses: actions/cache@v3
87
+ uses: actions/cache@v4
101
88
  with:
102
- path: ${{env.EM_CACHE_FOLDER}}
103
- key: ${{env.EMSCRIPTEN_VERSION}}
89
+ path: ${{ env.EM_CACHE_FOLDER }}
90
+ key: ${{ env.EMSCRIPTEN_VERSION }}
104
91
 
105
- - uses: mymindstorm/setup-emsdk@v12
92
+ - name: Setup emsdk
93
+ uses: mymindstorm/setup-emsdk@v12
106
94
  with:
107
95
  version: ${{ env.EMSCRIPTEN_VERSION }}
108
- actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
96
+ actions-cache-folder: ${{ env.EM_CACHE_FOLDER }}
109
97
 
110
- - name: build
111
- run: |
112
- ./testsuite/emscripten/build.sh ${{ matrix.bigint }}
98
+ - name: Install dependencies
99
+ run: sudo apt-get install libltdl-dev
100
+
101
+ - name: Build
102
+ run: ./testsuite/emscripten/build.sh
113
103
 
114
- - name: build tests
104
+ - name: Build tests
115
105
  run: |
116
106
  cp -r testsuite/libffi.call testsuite/libffi.call.test
117
107
  cp -r testsuite/libffi.closures testsuite/libffi.closures.test
118
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test ${{ matrix.bigint }}
119
- ./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test ${{ matrix.bigint }}
108
+ ./testsuite/emscripten/build-tests.sh testsuite/libffi.call.test
109
+ ./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test
120
110
 
121
111
  - name: Store artifacts
122
- uses: actions/upload-artifact@v3
112
+ uses: actions/upload-artifact@v4
123
113
  with:
124
114
  name: built-tests
125
- path: |
126
- ./testsuite/libffi.c*/
115
+ path: ./testsuite/libffi.c*/
127
116
 
128
117
  test:
129
118
  strategy:
130
119
  matrix:
131
- bigint: ["--wasm-bigint", ""]
132
120
  browser: ["chrome"]
133
121
  # FIXME: selenium can't find gecko driver for "firefox"
134
- runs-on: ubuntu-22.04
122
+ runs-on: ubuntu-24.04
135
123
  needs: [build]
136
124
  steps:
137
125
  - name: Checkout
138
- uses: actions/checkout@v3
126
+ uses: actions/checkout@v4
139
127
 
140
128
  - name: Download build artifact
141
- uses: actions/download-artifact@v3
129
+ uses: actions/download-artifact@v4
142
130
  with:
143
131
  name: built-tests
144
132
  path: ./testsuite/
145
133
 
146
- - uses: conda-incubator/setup-miniconda@v2
134
+ - uses: conda-incubator/setup-miniconda@v3
147
135
  with:
148
136
  activate-environment: pyodide-env
149
137
  python-version: ${{ env.PYTHON_VERSION }}
150
138
  channels: conda-forge
139
+
151
140
  - name: Install test dependencies
152
- run: |
153
- pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
141
+ run: pip install pytest-pyodide==${{ env.PYODIDE_VERSION }}
154
142
 
155
- - name:
143
+ - name: Run tests
156
144
  run: |
157
145
  cd testsuite/emscripten/
158
146
  mkdir test-results
@@ -55,10 +55,11 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
55
55
  src/m32r/ffitarget.h src/m68k/ffitarget.h \
56
56
  src/m88k/ffitarget.h src/metag/ffitarget.h \
57
57
  src/microblaze/ffitarget.h src/mips/ffitarget.h \
58
- src/moxie/ffitarget.h src/nios2/ffitarget.h \
58
+ src/moxie/ffitarget.h \
59
59
  src/or1k/ffitarget.h src/pa/ffitarget.h \
60
60
  src/powerpc/ffitarget.h src/powerpc/asm.h \
61
- src/powerpc/ffi_powerpc.h src/riscv/ffitarget.h \
61
+ src/powerpc/ffi_powerpc.h src/powerpc/internal.h \
62
+ src/riscv/ffitarget.h \
62
63
  src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
63
64
  src/sh64/ffitarget.h src/sparc/ffitarget.h \
64
65
  src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
@@ -80,7 +81,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
80
81
  src/metag/ffi.c src/metag/sysv.S src/microblaze/ffi.c \
81
82
  src/microblaze/sysv.S src/mips/ffi.c src/mips/o32.S \
82
83
  src/mips/n32.S src/moxie/ffi.c src/moxie/eabi.S \
83
- src/nios2/ffi.c src/nios2/sysv.S src/or1k/ffi.c \
84
+ src/or1k/ffi.c \
84
85
  src/or1k/sysv.S src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
85
86
  src/pa/hpux64.S src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
86
87
  src/powerpc/ffi_linux64.c src/powerpc/sysv.S \
@@ -221,7 +221,6 @@ am__depfiles_remade = src/$(DEPDIR)/closures.Plo \
221
221
  src/microblaze/$(DEPDIR)/sysv.Plo src/mips/$(DEPDIR)/ffi.Plo \
222
222
  src/mips/$(DEPDIR)/n32.Plo src/mips/$(DEPDIR)/o32.Plo \
223
223
  src/moxie/$(DEPDIR)/eabi.Plo src/moxie/$(DEPDIR)/ffi.Plo \
224
- src/nios2/$(DEPDIR)/ffi.Plo src/nios2/$(DEPDIR)/sysv.Plo \
225
224
  src/or1k/$(DEPDIR)/ffi.Plo src/or1k/$(DEPDIR)/sysv.Plo \
226
225
  src/pa/$(DEPDIR)/ffi.Plo src/pa/$(DEPDIR)/hpux32.Plo \
227
226
  src/pa/$(DEPDIR)/hpux64.Plo src/pa/$(DEPDIR)/linux.Plo \
@@ -470,6 +469,7 @@ ac_ct_AR = @ac_ct_AR@
470
469
  ac_ct_CC = @ac_ct_CC@
471
470
  ac_ct_CXX = @ac_ct_CXX@
472
471
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
472
+ ac_ct_READELF = @ac_ct_READELF@
473
473
  am__include = @am__include@
474
474
  am__leading_dot = @am__leading_dot@
475
475
  am__quote = @am__quote@
@@ -560,10 +560,11 @@ noinst_HEADERS = src/aarch64/ffitarget.h src/aarch64/internal.h \
560
560
  src/m32r/ffitarget.h src/m68k/ffitarget.h \
561
561
  src/m88k/ffitarget.h src/metag/ffitarget.h \
562
562
  src/microblaze/ffitarget.h src/mips/ffitarget.h \
563
- src/moxie/ffitarget.h src/nios2/ffitarget.h \
563
+ src/moxie/ffitarget.h \
564
564
  src/or1k/ffitarget.h src/pa/ffitarget.h \
565
565
  src/powerpc/ffitarget.h src/powerpc/asm.h \
566
- src/powerpc/ffi_powerpc.h src/riscv/ffitarget.h \
566
+ src/powerpc/ffi_powerpc.h src/powerpc/internal.h \
567
+ src/riscv/ffitarget.h \
567
568
  src/s390/ffitarget.h src/s390/internal.h src/sh/ffitarget.h \
568
569
  src/sh64/ffitarget.h src/sparc/ffitarget.h \
569
570
  src/sparc/internal.h src/tile/ffitarget.h src/vax/ffitarget.h \
@@ -585,7 +586,7 @@ EXTRA_libffi_la_SOURCES = src/aarch64/ffi.c src/aarch64/sysv.S \
585
586
  src/metag/ffi.c src/metag/sysv.S src/microblaze/ffi.c \
586
587
  src/microblaze/sysv.S src/mips/ffi.c src/mips/o32.S \
587
588
  src/mips/n32.S src/moxie/ffi.c src/moxie/eabi.S \
588
- src/nios2/ffi.c src/nios2/sysv.S src/or1k/ffi.c \
589
+ src/or1k/ffi.c \
589
590
  src/or1k/sysv.S src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
590
591
  src/pa/hpux64.S src/powerpc/ffi.c src/powerpc/ffi_sysv.c \
591
592
  src/powerpc/ffi_linux64.c src/powerpc/sysv.S \
@@ -913,16 +914,6 @@ src/moxie/ffi.lo: src/moxie/$(am__dirstamp) \
913
914
  src/moxie/$(DEPDIR)/$(am__dirstamp)
914
915
  src/moxie/eabi.lo: src/moxie/$(am__dirstamp) \
915
916
  src/moxie/$(DEPDIR)/$(am__dirstamp)
916
- src/nios2/$(am__dirstamp):
917
- @$(MKDIR_P) src/nios2
918
- @: > src/nios2/$(am__dirstamp)
919
- src/nios2/$(DEPDIR)/$(am__dirstamp):
920
- @$(MKDIR_P) src/nios2/$(DEPDIR)
921
- @: > src/nios2/$(DEPDIR)/$(am__dirstamp)
922
- src/nios2/ffi.lo: src/nios2/$(am__dirstamp) \
923
- src/nios2/$(DEPDIR)/$(am__dirstamp)
924
- src/nios2/sysv.lo: src/nios2/$(am__dirstamp) \
925
- src/nios2/$(DEPDIR)/$(am__dirstamp)
926
917
  src/or1k/$(am__dirstamp):
927
918
  @$(MKDIR_P) src/or1k
928
919
  @: > src/or1k/$(am__dirstamp)
@@ -1158,8 +1149,6 @@ mostlyclean-compile:
1158
1149
  -rm -f src/mips/*.lo
1159
1150
  -rm -f src/moxie/*.$(OBJEXT)
1160
1151
  -rm -f src/moxie/*.lo
1161
- -rm -f src/nios2/*.$(OBJEXT)
1162
- -rm -f src/nios2/*.lo
1163
1152
  -rm -f src/or1k/*.$(OBJEXT)
1164
1153
  -rm -f src/or1k/*.lo
1165
1154
  -rm -f src/pa/*.$(OBJEXT)
@@ -1238,8 +1227,6 @@ distclean-compile:
1238
1227
  @AMDEP_TRUE@@am__include@ @am__quote@src/mips/$(DEPDIR)/o32.Plo@am__quote@ # am--include-marker
1239
1228
  @AMDEP_TRUE@@am__include@ @am__quote@src/moxie/$(DEPDIR)/eabi.Plo@am__quote@ # am--include-marker
1240
1229
  @AMDEP_TRUE@@am__include@ @am__quote@src/moxie/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1241
- @AMDEP_TRUE@@am__include@ @am__quote@src/nios2/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1242
- @AMDEP_TRUE@@am__include@ @am__quote@src/nios2/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1243
1230
  @AMDEP_TRUE@@am__include@ @am__quote@src/or1k/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
1244
1231
  @AMDEP_TRUE@@am__include@ @am__quote@src/or1k/$(DEPDIR)/sysv.Plo@am__quote@ # am--include-marker
1245
1232
  @AMDEP_TRUE@@am__include@ @am__quote@src/pa/$(DEPDIR)/ffi.Plo@am__quote@ # am--include-marker
@@ -1365,7 +1352,6 @@ clean-libtool:
1365
1352
  -rm -rf src/microblaze/.libs src/microblaze/_libs
1366
1353
  -rm -rf src/mips/.libs src/mips/_libs
1367
1354
  -rm -rf src/moxie/.libs src/moxie/_libs
1368
- -rm -rf src/nios2/.libs src/nios2/_libs
1369
1355
  -rm -rf src/or1k/.libs src/or1k/_libs
1370
1356
  -rm -rf src/pa/.libs src/pa/_libs
1371
1357
  -rm -rf src/powerpc/.libs src/powerpc/_libs
@@ -1783,8 +1769,6 @@ distclean-generic:
1783
1769
  -rm -f src/mips/$(am__dirstamp)
1784
1770
  -rm -f src/moxie/$(DEPDIR)/$(am__dirstamp)
1785
1771
  -rm -f src/moxie/$(am__dirstamp)
1786
- -rm -f src/nios2/$(DEPDIR)/$(am__dirstamp)
1787
- -rm -f src/nios2/$(am__dirstamp)
1788
1772
  -rm -f src/or1k/$(DEPDIR)/$(am__dirstamp)
1789
1773
  -rm -f src/or1k/$(am__dirstamp)
1790
1774
  -rm -f src/pa/$(DEPDIR)/$(am__dirstamp)
@@ -1871,8 +1855,6 @@ distclean: distclean-recursive
1871
1855
  -rm -f src/mips/$(DEPDIR)/o32.Plo
1872
1856
  -rm -f src/moxie/$(DEPDIR)/eabi.Plo
1873
1857
  -rm -f src/moxie/$(DEPDIR)/ffi.Plo
1874
- -rm -f src/nios2/$(DEPDIR)/ffi.Plo
1875
- -rm -f src/nios2/$(DEPDIR)/sysv.Plo
1876
1858
  -rm -f src/or1k/$(DEPDIR)/ffi.Plo
1877
1859
  -rm -f src/or1k/$(DEPDIR)/sysv.Plo
1878
1860
  -rm -f src/pa/$(DEPDIR)/ffi.Plo
@@ -2013,8 +1995,6 @@ maintainer-clean: maintainer-clean-recursive
2013
1995
  -rm -f src/mips/$(DEPDIR)/o32.Plo
2014
1996
  -rm -f src/moxie/$(DEPDIR)/eabi.Plo
2015
1997
  -rm -f src/moxie/$(DEPDIR)/ffi.Plo
2016
- -rm -f src/nios2/$(DEPDIR)/ffi.Plo
2017
- -rm -f src/nios2/$(DEPDIR)/sysv.Plo
2018
1998
  -rm -f src/or1k/$(DEPDIR)/ffi.Plo
2019
1999
  -rm -f src/or1k/$(DEPDIR)/sysv.Plo
2020
2000
  -rm -f src/pa/$(DEPDIR)/ffi.Plo
@@ -1,7 +1,7 @@
1
1
  Status
2
2
  ======
3
3
 
4
- libffi-3.4.6 was released on February 18, 2024. Check the libffi web
4
+ libffi-3.4.8 was released on April 9, 2025. Check the libffi web
5
5
  page for updates: <URL:http://sourceware.org/libffi/>.
6
6
 
7
7
 
@@ -76,7 +76,6 @@ tested:
76
76
  | MIPS | RTEMS | GCC |
77
77
  | MIPS64 | Linux | GCC |
78
78
  | Moxie | Bare metal | GCC |
79
- | Nios II | Linux | GCC |
80
79
  | OpenRISC | Linux | GCC |
81
80
  | PowerPC 32-bit | AIX | GCC |
82
81
  | PowerPC 32-bit | AIX | IBM XL C |
@@ -201,6 +200,24 @@ History
201
200
 
202
201
  See the git log for details at http://github.com/libffi/libffi.
203
202
 
203
+ 3.4.8 Apr-9-2025
204
+ Add static trampoline support for powerpc-linux (32-bit SYSV BE),
205
+ powerpc64-linux (64-bit ELFv1 BE) and
206
+ powerpc64le-linux (64-bit ELFv2 LE)
207
+ Various x86-64 bug fixes (x32 ABI and improper memory access for
208
+ small argument calls).
209
+ Fix to enable pointer authentication for aarch64.
210
+
211
+ 3.4.7 Feb-8-2025
212
+ Add static trampoline support for Linux on s390x.
213
+ Fix BTI support for ARM64.
214
+ Support pointer authentication for ARM64.
215
+ Fix ASAN compatibility.
216
+ Fix x86-64 calls with 6 GP registers and some SSE registers.
217
+ Miscellaneous fixes for ARC and Darwin ARM64.
218
+ Fix OpenRISC or1k and Solaris 10 builds.
219
+ Remove nios2 port.
220
+
204
221
  3.4.6 Feb-18-2024
205
222
  Fix long double regression on mips64 and alpha.
206
223
 
@@ -180,6 +180,10 @@ AC_DEFUN([LIBFFI_CHECK_LINKER_FEATURES], [
180
180
  if $LD --version 2>/dev/null | grep 'LLD '> /dev/null 2>&1; then
181
181
  libat_ld_is_lld=yes
182
182
  fi
183
+ libat_ld_is_mold=no
184
+ if $LD --version 2>/dev/null | grep 'mold '> /dev/null 2>&1; then
185
+ libat_ld_is_mold=yes
186
+ fi
183
187
  changequote(,)
184
188
  ldver=`$LD --version 2>/dev/null |
185
189
  sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
@@ -336,6 +340,8 @@ if test $enable_symvers != no && test $libat_shared_libgcc = yes; then
336
340
  enable_symvers=gnu
337
341
  elif test $libat_ld_is_lld = yes ; then
338
342
  enable_symvers=gnu
343
+ elif test $libat_ld_is_mold = yes ; then
344
+ enable_symvers=gnu
339
345
  else
340
346
  # The right tools, the right setup, but too old. Fallbacks?
341
347
  AC_MSG_WARN(=== Linker version $libat_gnu_ld_version is too old for)
@@ -1,10 +1,10 @@
1
1
  #! /bin/sh
2
2
  # Attempt to guess a canonical system name.
3
- # Copyright 1992-2022 Free Software Foundation, Inc.
3
+ # Copyright 1992-2024 Free Software Foundation, Inc.
4
4
 
5
5
  # shellcheck disable=SC2006,SC2268 # see below for rationale
6
6
 
7
- timestamp='2022-01-09'
7
+ timestamp='2024-01-01'
8
8
 
9
9
  # This file is free software; you can redistribute it and/or modify it
10
10
  # under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
47
47
  usage="\
48
48
  Usage: $0 [OPTION]
49
49
 
50
- Output the configuration name of the system \`$me' is run on.
50
+ Output the configuration name of the system '$me' is run on.
51
51
 
52
52
  Options:
53
53
  -h, --help print this help, then exit
@@ -60,13 +60,13 @@ version="\
60
60
  GNU config.guess ($timestamp)
61
61
 
62
62
  Originally written by Per Bothner.
63
- Copyright 1992-2022 Free Software Foundation, Inc.
63
+ Copyright 1992-2024 Free Software Foundation, Inc.
64
64
 
65
65
  This is free software; see the source for copying conditions. There is NO
66
66
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
67
67
 
68
68
  help="
69
- Try \`$me --help' for more information."
69
+ Try '$me --help' for more information."
70
70
 
71
71
  # Parse command line
72
72
  while test $# -gt 0 ; do
@@ -102,8 +102,8 @@ GUESS=
102
102
  # temporary files to be created and, as you can see below, it is a
103
103
  # headache to deal with in a portable fashion.
104
104
 
105
- # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
106
- # use `HOST_CC' if defined, but it is deprecated.
105
+ # Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
106
+ # use 'HOST_CC' if defined, but it is deprecated.
107
107
 
108
108
  # Portable tmp directory creation inspired by the Autoconf team.
109
109
 
@@ -155,6 +155,9 @@ Linux|GNU|GNU/*)
155
155
 
156
156
  set_cc_for_build
157
157
  cat <<-EOF > "$dummy.c"
158
+ #if defined(__ANDROID__)
159
+ LIBC=android
160
+ #else
158
161
  #include <features.h>
159
162
  #if defined(__UCLIBC__)
160
163
  LIBC=uclibc
@@ -162,6 +165,8 @@ Linux|GNU|GNU/*)
162
165
  LIBC=dietlibc
163
166
  #elif defined(__GLIBC__)
164
167
  LIBC=gnu
168
+ #elif defined(__LLVM_LIBC__)
169
+ LIBC=llvm
165
170
  #else
166
171
  #include <stdarg.h>
167
172
  /* First heuristic to detect musl libc. */
@@ -169,6 +174,7 @@ Linux|GNU|GNU/*)
169
174
  LIBC=musl
170
175
  #endif
171
176
  #endif
177
+ #endif
172
178
  EOF
173
179
  cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
174
180
  eval "$cc_set_libc"
@@ -459,7 +465,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
459
465
  UNAME_RELEASE=`uname -v`
460
466
  ;;
461
467
  esac
462
- # Japanese Language versions have a version number like `4.1.3-JL'.
468
+ # Japanese Language versions have a version number like '4.1.3-JL'.
463
469
  SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
464
470
  GUESS=sparc-sun-sunos$SUN_REL
465
471
  ;;
@@ -904,7 +910,7 @@ EOF
904
910
  fi
905
911
  ;;
906
912
  *:FreeBSD:*:*)
907
- UNAME_PROCESSOR=`/usr/bin/uname -p`
913
+ UNAME_PROCESSOR=`uname -p`
908
914
  case $UNAME_PROCESSOR in
909
915
  amd64)
910
916
  UNAME_PROCESSOR=x86_64 ;;
@@ -966,11 +972,37 @@ EOF
966
972
  GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
967
973
  GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
968
974
  ;;
975
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
976
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
977
+ ;;
978
+ *:[Mm]anagarm:*:*)
979
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
980
+ ;;
969
981
  *:Minix:*:*)
970
982
  GUESS=$UNAME_MACHINE-unknown-minix
971
983
  ;;
972
984
  aarch64:Linux:*:*)
973
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
985
+ set_cc_for_build
986
+ CPU=$UNAME_MACHINE
987
+ LIBCABI=$LIBC
988
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
989
+ ABI=64
990
+ sed 's/^ //' << EOF > "$dummy.c"
991
+ #ifdef __ARM_EABI__
992
+ #ifdef __ARM_PCS_VFP
993
+ ABI=eabihf
994
+ #else
995
+ ABI=eabi
996
+ #endif
997
+ #endif
998
+ EOF
999
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
1000
+ eval "$cc_set_abi"
1001
+ case $ABI in
1002
+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
1003
+ esac
1004
+ fi
1005
+ GUESS=$CPU-unknown-linux-$LIBCABI
974
1006
  ;;
975
1007
  aarch64_be:Linux:*:*)
976
1008
  UNAME_MACHINE=aarch64_be
@@ -1036,7 +1068,16 @@ EOF
1036
1068
  k1om:Linux:*:*)
1037
1069
  GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1038
1070
  ;;
1039
- loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
1071
+ kvx:Linux:*:*)
1072
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1073
+ ;;
1074
+ kvx:cos:*:*)
1075
+ GUESS=$UNAME_MACHINE-unknown-cos
1076
+ ;;
1077
+ kvx:mbr:*:*)
1078
+ GUESS=$UNAME_MACHINE-unknown-mbr
1079
+ ;;
1080
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
1040
1081
  GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041
1082
  ;;
1042
1083
  m32r*:Linux:*:*)
@@ -1151,16 +1192,27 @@ EOF
1151
1192
  ;;
1152
1193
  x86_64:Linux:*:*)
1153
1194
  set_cc_for_build
1195
+ CPU=$UNAME_MACHINE
1154
1196
  LIBCABI=$LIBC
1155
1197
  if test "$CC_FOR_BUILD" != no_compiler_found; then
1156
- if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1157
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1158
- grep IS_X32 >/dev/null
1159
- then
1160
- LIBCABI=${LIBC}x32
1161
- fi
1198
+ ABI=64
1199
+ sed 's/^ //' << EOF > "$dummy.c"
1200
+ #ifdef __i386__
1201
+ ABI=x86
1202
+ #else
1203
+ #ifdef __ILP32__
1204
+ ABI=x32
1205
+ #endif
1206
+ #endif
1207
+ EOF
1208
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
1209
+ eval "$cc_set_abi"
1210
+ case $ABI in
1211
+ x86) CPU=i686 ;;
1212
+ x32) LIBCABI=${LIBC}x32 ;;
1213
+ esac
1162
1214
  fi
1163
- GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
1215
+ GUESS=$CPU-pc-linux-$LIBCABI
1164
1216
  ;;
1165
1217
  xtensa*:Linux:*:*)
1166
1218
  GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@@ -1180,7 +1232,7 @@ EOF
1180
1232
  GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1181
1233
  ;;
1182
1234
  i*86:OS/2:*:*)
1183
- # If we were able to find `uname', then EMX Unix compatibility
1235
+ # If we were able to find 'uname', then EMX Unix compatibility
1184
1236
  # is probably installed.
1185
1237
  GUESS=$UNAME_MACHINE-pc-os2-emx
1186
1238
  ;;
@@ -1321,7 +1373,7 @@ EOF
1321
1373
  GUESS=ns32k-sni-sysv
1322
1374
  fi
1323
1375
  ;;
1324
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1376
+ PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
1325
1377
  # says <Richard.M.Bartel@ccMail.Census.GOV>
1326
1378
  GUESS=i586-unisys-sysv4
1327
1379
  ;;
@@ -1367,8 +1419,11 @@ EOF
1367
1419
  BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1368
1420
  GUESS=i586-pc-haiku
1369
1421
  ;;
1370
- x86_64:Haiku:*:*)
1371
- GUESS=x86_64-unknown-haiku
1422
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
1423
+ GUESS=powerpc-apple-haiku
1424
+ ;;
1425
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
1426
+ GUESS=$UNAME_MACHINE-unknown-haiku
1372
1427
  ;;
1373
1428
  SX-4:SUPER-UX:*:*)
1374
1429
  GUESS=sx4-nec-superux$UNAME_RELEASE
@@ -1540,6 +1595,9 @@ EOF
1540
1595
  *:Unleashed:*:*)
1541
1596
  GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
1542
1597
  ;;
1598
+ *:Ironclad:*:*)
1599
+ GUESS=$UNAME_MACHINE-unknown-ironclad
1600
+ ;;
1543
1601
  esac
1544
1602
 
1545
1603
  # Do we have a guess based on uname results?