ffi 1.17.0 → 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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +3 -1
- data/Rakefile +2 -2
- data/ext/ffi_c/Function.c +52 -34
- data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +48 -60
- data/ext/ffi_c/libffi/Makefile.am +4 -3
- data/ext/ffi_c/libffi/Makefile.in +5 -25
- data/ext/ffi_c/libffi/README.md +19 -2
- 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 +41 -25
- data/ext/ffi_c/libffi/configure.ac +9 -8
- data/ext/ffi_c/libffi/configure.host +0 -5
- data/ext/ffi_c/libffi/doc/Makefile.in +1 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +3 -3
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +3 -3
- data/ext/ffi_c/libffi/include/Makefile.in +1 -0
- 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/man/Makefile.in +1 -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 +16 -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/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/powerpc/ffi.c +13 -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/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/wasm32/ffi.c +10 -262
- 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/testsuite/Makefile.am +4 -3
- data/ext/ffi_c/libffi/testsuite/Makefile.in +5 -3
- data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +4 -24
- data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +8 -25
- data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +3 -28
- 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/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_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.complex/complex_int.c +1 -1
- data/lib/ffi/ffi.rb +59 -0
- data/lib/ffi/version.rb +1 -1
- data/sig/ffi/auto_pointer.rbs +0 -1
- data/sig/ffi/library.rbs +1 -1
- data.tar.gz.sig +0 -0
- metadata +18 -18
- metadata.gz.sig +0 -0
- 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
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: '058d816e4da0c93950ccb7181f82c310f9faf3e934948e77f574d01ffcdf7aaa'
         | 
| 4 | 
            +
              data.tar.gz: 0553df9cff19ffb4404dac629dac314f43f70f3cb647899e0cae687dd48631d7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ff675e518022c92374772bdfb8594e07940d0765c134ae076235c6e1c2fe886c091e736415ee0ba28ddd7c4aaf3768929fe27366aa43aaa2f3c250e4eaa7d2cd
         | 
| 7 | 
            +
              data.tar.gz: 7fb6dd8b66f31369863914000c9484eb6cbf813195e25aeaf0a72a3a3eb3e8895f85c8c240686e744ee1bbe90492641e7ef65a1ebcc7d17195c58125c2138c8d
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,20 @@ | |
| 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 | 
            +
             | 
| 9 | 
            +
            1.17.1 / 2024-12-30
         | 
| 10 | 
            +
            -------------------
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            Fixed:
         | 
| 13 | 
            +
            * #1117 Restart async callback dispatcher thread after fork.
         | 
| 14 | 
            +
            * #1133 Add ruby-3.4 native gem.
         | 
| 15 | 
            +
            * #1134 Fix FFI::DataConverter non-generic usage in RBS files.
         | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 1 18 | 
             
            1.17.0 / 2024-06-02
         | 
| 2 19 | 
             
            -------------------
         | 
| 3 20 |  | 
    
        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.0 | 
| 10 | 
            +
              gem 'rake-compiler-dock', '~> 1.9.0'
         | 
| 9 11 | 
             
              gem 'rspec', '~> 3.0'
         | 
| 10 12 | 
             
            end
         | 
| 11 13 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -136,9 +136,9 @@ namespace "gem" do | |
| 136 136 | 
             
                desc "Build the native gem for #{plat}"
         | 
| 137 137 | 
             
                task plat => ['prepare', 'build'] 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 | 
| 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
         | 
    
        data/ext/ffi_c/Function.c
    CHANGED
    
    | @@ -215,6 +215,52 @@ async_cb_dispatcher_set(struct async_cb_dispatcher *ctx) | |
| 215 215 | 
             
                async_cb_dispatcher = ctx;
         | 
| 216 216 | 
             
            }
         | 
| 217 217 | 
             
            #endif
         | 
| 218 | 
            +
             | 
| 219 | 
            +
            static void
         | 
| 220 | 
            +
            async_cb_dispatcher_initialize(struct async_cb_dispatcher *ctx)
         | 
| 221 | 
            +
            {
         | 
| 222 | 
            +
                    ctx->async_cb_list = NULL;
         | 
| 223 | 
            +
             | 
| 224 | 
            +
            #if !defined(_WIN32)
         | 
| 225 | 
            +
                    /* n.b. we _used_ to try and destroy the mutex/cond before initializing here,
         | 
| 226 | 
            +
                     * but it's undefined what happens if you try and destory an unitialized cond.
         | 
| 227 | 
            +
                     * glibc in particular seems to wait for any concurrent waiters to finish before
         | 
| 228 | 
            +
                     * destroying a condvar, trying to destroy a condvar after fork that someone was
         | 
| 229 | 
            +
                     * waiting on pre-fork won't work. Just re-init he memory directly. */
         | 
| 230 | 
            +
                    pthread_mutex_init(&ctx->async_cb_mutex, NULL);
         | 
| 231 | 
            +
                    pthread_cond_init(&ctx->async_cb_cond, NULL);
         | 
| 232 | 
            +
            #else
         | 
| 233 | 
            +
                    InitializeCriticalSection(&ctx->async_cb_lock);
         | 
| 234 | 
            +
                    ctx->async_cb_cond = CreateEvent(NULL, FALSE, FALSE, NULL);
         | 
| 235 | 
            +
            #endif
         | 
| 236 | 
            +
                ctx->thread = rb_thread_create(async_cb_event, ctx);
         | 
| 237 | 
            +
             | 
| 238 | 
            +
                /* Name thread, for better debugging */
         | 
| 239 | 
            +
                rb_funcall(ctx->thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Dispatcher"));
         | 
| 240 | 
            +
            }
         | 
| 241 | 
            +
             | 
| 242 | 
            +
            static struct async_cb_dispatcher *
         | 
| 243 | 
            +
            async_cb_dispatcher_ensure_created(void)
         | 
| 244 | 
            +
            {
         | 
| 245 | 
            +
                struct async_cb_dispatcher *ctx = async_cb_dispatcher_get();
         | 
| 246 | 
            +
                if (ctx == NULL) {
         | 
| 247 | 
            +
                    ctx = (struct async_cb_dispatcher*)ALLOC(struct async_cb_dispatcher);
         | 
| 248 | 
            +
                    async_cb_dispatcher_initialize(ctx);
         | 
| 249 | 
            +
                    async_cb_dispatcher_set(ctx);
         | 
| 250 | 
            +
                }
         | 
| 251 | 
            +
                return ctx;
         | 
| 252 | 
            +
            }
         | 
| 253 | 
            +
             | 
| 254 | 
            +
             | 
| 255 | 
            +
            static VALUE
         | 
| 256 | 
            +
            async_cb_dispatcher_atfork_child(VALUE self)
         | 
| 257 | 
            +
            {
         | 
| 258 | 
            +
                struct async_cb_dispatcher *ctx = async_cb_dispatcher_get();
         | 
| 259 | 
            +
                if (ctx) {
         | 
| 260 | 
            +
                    async_cb_dispatcher_initialize(ctx);
         | 
| 261 | 
            +
                }
         | 
| 262 | 
            +
                return Qnil;
         | 
| 263 | 
            +
            }
         | 
| 218 264 | 
             
            #endif
         | 
| 219 265 |  | 
| 220 266 | 
             
            static VALUE
         | 
| @@ -391,15 +437,6 @@ rbffi_Function_ForProc(VALUE rbFunctionInfo, VALUE proc) | |
| 391 437 | 
             
                return callback;
         | 
| 392 438 | 
             
            }
         | 
| 393 439 |  | 
| 394 | 
            -
            #if !defined(_WIN32) && defined(DEFER_ASYNC_CALLBACK)
         | 
| 395 | 
            -
            static void
         | 
| 396 | 
            -
            after_fork_callback(void)
         | 
| 397 | 
            -
            {
         | 
| 398 | 
            -
                /* Ensure that a new dispatcher thread is started in a forked process */
         | 
| 399 | 
            -
                async_cb_dispatcher_set(NULL);
         | 
| 400 | 
            -
            }
         | 
| 401 | 
            -
            #endif
         | 
| 402 | 
            -
             | 
| 403 440 | 
             
            static VALUE
         | 
| 404 441 | 
             
            function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc)
         | 
| 405 442 | 
             
            {
         | 
| @@ -426,31 +463,7 @@ function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc) | |
| 426 463 | 
             
                    }
         | 
| 427 464 |  | 
| 428 465 | 
             
            #if defined(DEFER_ASYNC_CALLBACK)
         | 
| 429 | 
            -
                     | 
| 430 | 
            -
                        struct async_cb_dispatcher *ctx = async_cb_dispatcher_get();
         | 
| 431 | 
            -
                        if (ctx == NULL) {
         | 
| 432 | 
            -
                            ctx = (struct async_cb_dispatcher*)ALLOC(struct async_cb_dispatcher);
         | 
| 433 | 
            -
                            ctx->async_cb_list = NULL;
         | 
| 434 | 
            -
             | 
| 435 | 
            -
            #if !defined(_WIN32)
         | 
| 436 | 
            -
                            pthread_mutex_init(&ctx->async_cb_mutex, NULL);
         | 
| 437 | 
            -
                            pthread_cond_init(&ctx->async_cb_cond, NULL);
         | 
| 438 | 
            -
                            if( pthread_atfork(NULL, NULL, after_fork_callback) ){
         | 
| 439 | 
            -
                                rb_warn("FFI: unable to register fork callback");
         | 
| 440 | 
            -
                            }
         | 
| 441 | 
            -
            #else
         | 
| 442 | 
            -
                            InitializeCriticalSection(&ctx->async_cb_lock);
         | 
| 443 | 
            -
                            ctx->async_cb_cond = CreateEvent(NULL, FALSE, FALSE, NULL);
         | 
| 444 | 
            -
            #endif
         | 
| 445 | 
            -
                            ctx->thread = rb_thread_create(async_cb_event, ctx);
         | 
| 446 | 
            -
             | 
| 447 | 
            -
                            /* Name thread, for better debugging */
         | 
| 448 | 
            -
                            rb_funcall(ctx->thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Dispatcher"));
         | 
| 449 | 
            -
             | 
| 450 | 
            -
                            async_cb_dispatcher_set(ctx);
         | 
| 451 | 
            -
                        }
         | 
| 452 | 
            -
                        fn->dispatcher = ctx;
         | 
| 453 | 
            -
                    }
         | 
| 466 | 
            +
                    fn->dispatcher = async_cb_dispatcher_ensure_created();
         | 
| 454 467 | 
             
            #endif
         | 
| 455 468 |  | 
| 456 469 | 
             
                    fn->closure = rbffi_Closure_Alloc(fn->info->closurePool);
         | 
| @@ -1060,4 +1073,9 @@ rbffi_Function_Init(VALUE moduleFFI) | |
| 1060 1073 | 
             
            #if defined(DEFER_ASYNC_CALLBACK) && defined(HAVE_RB_EXT_RACTOR_SAFE)
         | 
| 1061 1074 | 
             
                async_cb_dispatcher_key = rb_ractor_local_storage_ptr_newkey(&async_cb_dispatcher_key_type);
         | 
| 1062 1075 | 
             
            #endif
         | 
| 1076 | 
            +
            #ifdef DEFER_ASYNC_CALLBACK
         | 
| 1077 | 
            +
              /* Ruby code will call this method in a Process._fork patch */
         | 
| 1078 | 
            +
              rb_define_singleton_method(moduleFFI, "_async_cb_dispatcher_atfork_child",
         | 
| 1079 | 
            +
                                         async_cb_dispatcher_atfork_child, 0);
         | 
| 1080 | 
            +
            #endif
         | 
| 1063 1081 | 
             
            }
         | 
| @@ -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: 3.1. | 
| 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 | 
            -
                     | 
| 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 | 
            -
                 | 
| 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@ | 
| 46 | 
            +
                    uses: actions/checkout@v4
         | 
| 50 47 |  | 
| 51 | 
            -
                  - name:  | 
| 52 | 
            -
                     | 
| 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 | 
            -
                     | 
| 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 | 
            -
                  -  | 
| 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  | 
| 70 | 
            -
                     | 
| 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:  | 
| 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 | 
            -
                 | 
| 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@ | 
| 84 | 
            +
                    uses: actions/checkout@v4
         | 
| 97 85 |  | 
| 98 86 | 
             
                  - name: Setup cache
         | 
| 99 | 
            -
                     | 
| 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 | 
            -
                  -  | 
| 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:  | 
| 111 | 
            -
                    run:  | 
| 112 | 
            -
             | 
| 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:  | 
| 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 | 
| 119 | 
            -
                      ./testsuite/emscripten/build-tests.sh testsuite/libffi.closures.test | 
| 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@ | 
| 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- | 
| 122 | 
            +
                runs-on: ubuntu-24.04
         | 
| 135 123 | 
             
                needs: [build]
         | 
| 136 124 | 
             
                steps:
         | 
| 137 125 | 
             
                  - name: Checkout
         | 
| 138 | 
            -
                    uses: actions/checkout@ | 
| 126 | 
            +
                    uses: actions/checkout@v4
         | 
| 139 127 |  | 
| 140 128 | 
             
                  - name: Download build artifact
         | 
| 141 | 
            -
                    uses: actions/download-artifact@ | 
| 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@ | 
| 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  | 
| 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/ | 
| 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/ | 
| 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  | 
| 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/ | 
| 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/ | 
| 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
         | 
    
        data/ext/ffi_c/libffi/README.md
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            Status
         | 
| 2 2 | 
             
            ======
         | 
| 3 3 |  | 
| 4 | 
            -
            libffi-3.4. | 
| 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)
         |