diff --git a/releases.json b/releases.json index 34251eab3..5deb1e0b8 100644 --- a/releases.json +++ b/releases.json @@ -1611,6 +1611,7 @@ "libffi" ], "versions": [ + "3.4.6-1", "3.4.4-4", "3.4.4-3", "3.4.4-2", diff --git a/subprojects/libffi.wrap b/subprojects/libffi.wrap index 1d9373144..87dd8c1db 100644 --- a/subprojects/libffi.wrap +++ b/subprojects/libffi.wrap @@ -1,8 +1,8 @@ [wrap-file] -directory = libffi-3.4.4 -source_url = https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz -source_filename = libffi-3.4.4.tar.gz -source_hash = d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676 +directory = libffi-3.4.6 +source_url = https://github.com/libffi/libffi/releases/download/v3.4.6/libffi-3.4.6.tar.gz +source_filename = libffi-3.4.6.tar.gz +source_hash = b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e patch_directory = libffi [provide] diff --git a/subprojects/packagefiles/libffi/meson-scripts/test-cc-supports-hidden-visibility.py b/subprojects/packagefiles/libffi/meson-scripts/test-cc-supports-hidden-visibility.py index 7a780aa76..3efabd39f 100644 --- a/subprojects/packagefiles/libffi/meson-scripts/test-cc-supports-hidden-visibility.py +++ b/subprojects/packagefiles/libffi/meson-scripts/test-cc-supports-hidden-visibility.py @@ -19,7 +19,7 @@ res = subprocess.run(args, stdout=subprocess.PIPE, universal_newlines=True, check=True) with open(outfile, 'r') as f: - if re.search('(\.hidden|\.private_extern).*foo', f.read()): + if re.search('(\.hidden|\.private_extern).*foo|foo.*,hidden', f.read()): sys.exit(0) print('.hidden not found in the outputted assembly') sys.exit(1) diff --git a/subprojects/packagefiles/libffi/meson.build b/subprojects/packagefiles/libffi/meson.build index aeb634c64..d54f5d5a4 100644 --- a/subprojects/packagefiles/libffi/meson.build +++ b/subprojects/packagefiles/libffi/meson.build @@ -1,4 +1,4 @@ -project('libffi', 'c', version : '3.4.4', +project('libffi', 'c', version : '3.4.6', meson_version : '>= 0.56.0', default_options : ['debug=true', 'optimization=3', @@ -128,9 +128,15 @@ elif (host_cpu_family in ['hppa', 'hppa64'] and host_system in ['linux', 'openbs asm_sources = ['linux.S'] elif host_cpu_family == 'hppa' and host_system in ['hpux'] # FIXME: hppa family is missing in Meson - target = 'PA_HPUX' targetdir = 'pa' - asm_sources = ['hpux32.S'] + if size_t == 4 + target = 'PA_HPUX' + asm_sources = ['hpux32.S'] + else + target = 'PA64_HPUX' + c_sources = ['ffi64.c'] + asm_sources = ['hpux64.S'] + endif elif host_cpu_family == 'x86' and host_system in ['freebsd', 'openbsd'] target = 'X86_FREEBSD' targetdir = 'x86' @@ -226,7 +232,7 @@ elif host_cpu_family == 'or1k' # FIXME: or1k family is missing in Meson target = 'OR1K' elif (host_cpu_family in ['ppc', 'ppc64'] and \ - host_system in ['linux', 'sysv', 'amigaos', 'eabi', 'beos', 'rtems']) or \ + host_system in ['linux', 'sysv', 'amigaos', 'eabi', 'beos', 'haiku', 'rtems']) or \ (host_cpu_family == 'ppc64' and host_system == 'freebsd') target = 'POWERPC' c_sources = ['ffi.c', 'ffi_sysv.c', 'ffi_linux64.c'] @@ -274,6 +280,8 @@ elif host_cpu_family == 'vax' # FIXME: vax family is missing in Meson target = 'VAX' asm_sources = ['elfbsd.S'] +elif host_cpu_family == 'wasm32' + target = 'wasm32' # lowercase elif host_cpu_family == 'xtensa' # FIXME: xtensa family is missing in Meson target = 'XTENSA' diff --git a/subprojects/packagefiles/libffi/testsuite/meson.build b/subprojects/packagefiles/libffi/testsuite/meson.build index 7aec821cd..94bbcf155 100644 --- a/subprojects/packagefiles/libffi/testsuite/meson.build +++ b/subprojects/packagefiles/libffi/testsuite/meson.build @@ -6,7 +6,11 @@ tests = { 'call': [ 'align_mixed.c', 'align_stdcall.c', - 'bpo-38748.c', + 'bpo_38748.c', + 'callback.c', + 'callback2.c', + 'callback3.c', + 'callback4.c', 'err_bad_typedef.c', 'float1.c', 'float2.c', @@ -54,7 +58,9 @@ tests = { 'struct9.c', 'struct_by_value_2.c', 'struct_by_value_3.c', + 'struct_by_value_3f.c', 'struct_by_value_4.c', + 'struct_by_value_4f.c', 'struct_by_value_big.c', 'struct_by_value_small.c', 'uninitialized.c',