Hello community, here is the log from the commit of package libffi for openSUSE:Factory checked in at 2019-09-30 15:47:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libffi (Old) and /work/SRC/openSUSE:Factory/.libffi.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libffi" Mon Sep 30 15:47:45 2019 rev:7 rq:731707 version:3.2.1.git505 Changes: -------- --- /work/SRC/openSUSE:Factory/libffi/libffi.changes 2018-03-20 21:50:34.526821023 +0100 +++ /work/SRC/openSUSE:Factory/.libffi.new.2352/libffi.changes 2019-09-30 15:47:48.223068185 +0200 @@ -1,0 +2,14 @@ +Wed Sep 18 09:39:07 UTC 2019 - Andreas Schwab <[email protected]> + +- Update to commit c2a6859 +- gccbug.patch: Update check for gccbug target flag +- stdcall.patch: Fix FFI_STDCALL ABI +- libffi-riscv.patch: Removed +- libffi-include-location.patch: Removed + +------------------------------------------------------------------- +Tue Oct 16 09:52:39 UTC 2018 - [email protected] + +- Add libffi-devel-32bit package. + +------------------------------------------------------------------- Old: ---- libffi-3.2.1.git259.tar.xz libffi-include-location.patch libffi-riscv.patch New: ---- gccbug.patch libffi-3.2.1.git505.tar.xz stdcall.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libffi.spec ++++++ --- /var/tmp/diff_new_pack.gIfhIm/_old 2019-09-30 15:47:48.807066630 +0200 +++ /var/tmp/diff_new_pack.gIfhIm/_new 2019-09-30 15:47:48.807066630 +0200 @@ -1,7 +1,7 @@ # # spec file for package libffi # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,14 +12,14 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define libffi_sover 7 Name: libffi -Version: 3.2.1.git259 +Version: 3.2.1.git505 Release: 0 Summary: Foreign Function Interface Library License: MIT @@ -27,8 +27,8 @@ Url: https://github.com/libffi/ Source: %name-%version.tar.xz Source99: baselibs.conf -Patch: libffi-include-location.patch -Patch2: libffi-riscv.patch +Patch1: gccbug.patch +Patch2: stdcall.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -80,7 +80,7 @@ %prep %setup -q -%patch -p1 +%patch1 -p1 %patch2 -p1 %build ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.gIfhIm/_old 2019-09-30 15:47:48.843066534 +0200 +++ /var/tmp/diff_new_pack.gIfhIm/_new 2019-09-30 15:47:48.843066534 +0200 @@ -1 +1,3 @@ libffi7 +libffi-devel + requires "libffi7-<targettype> = <version>" ++++++ gccbug.patch ++++++ Index: libffi-3.2.1.git505/testsuite/lib/libffi.exp =================================================================== --- libffi-3.2.1.git505.orig/testsuite/lib/libffi.exp +++ libffi-3.2.1.git505/testsuite/lib/libffi.exp @@ -526,12 +526,8 @@ proc run-many-tests { testcases extra_fl set has_gccbug false; if { [string match $compiler_vendor "gnu"] \ && [string match "*MSABI*" $abi] \ - && ( ( [string match "*DGTEST=57 *" $common] \ - && [string match "*call.c*" $testname] ) \ - || ( [string match "*DGTEST=54 *" $common] \ - && [string match "*callback*" $testname] ) \ - || [string match "*DGTEST=55 *" $common] \ - || [string match "*DGTEST=56 *" $common] ) } then { + && [string match {*DGTEST=5[456] *} $common] \ + && [string match "*callback*" $testname] } then { set has_gccbug true; } verbose "Testing $testname, $options" 1 ++++++ libffi-3.2.1.git259.tar.xz -> libffi-3.2.1.git505.tar.xz ++++++ ++++ 22577 lines of diff (skipped) ++++++ stdcall.patch ++++++ Index: libffi-3.2.1.git505/src/x86/ffi.c =================================================================== --- libffi-3.2.1.git505.orig/src/x86/ffi.c +++ libffi-3.2.1.git505/src/x86/ffi.c @@ -51,6 +51,13 @@ # define __declspec(x) __attribute__((x)) #endif +#if defined(_MSC_VER) && defined(_M_IX86) +/* Stack is not 16-byte aligned on Windows. */ +#define STACK_ALIGN(bytes) (bytes) +#else +#define STACK_ALIGN(bytes) FFI_ALIGN (bytes, 16) +#endif + /* Perform machine dependent cif processing. */ ffi_status FFI_HIDDEN ffi_prep_cif_machdep(ffi_cif *cif) @@ -177,12 +184,7 @@ ffi_prep_cif_machdep(ffi_cif *cif) bytes = FFI_ALIGN (bytes, t->alignment); bytes += FFI_ALIGN (t->size, FFI_SIZEOF_ARG); } -#if defined(_MSC_VER) && defined(_M_IX86) - // stack is not 16-bit aligned on Windows cif->bytes = bytes; -#else - cif->bytes = FFI_ALIGN (bytes, 16); -#endif return FFI_OK; } @@ -290,7 +292,7 @@ ffi_call_int (ffi_cif *cif, void (*fn)(v } } - bytes = cif->bytes; + bytes = STACK_ALIGN (cif->bytes); stack = alloca(bytes + sizeof(*frame) + rsize); argp = (dir < 0 ? stack + bytes : stack); frame = (struct call_frame *)(stack + bytes); @@ -434,7 +436,7 @@ ffi_closure_inner (struct closure_frame rvalue = frame->rettemp; pabi = &abi_params[cabi]; dir = pabi->dir; - argp = (dir < 0 ? stack + cif->bytes : stack); + argp = (dir < 0 ? stack + STACK_ALIGN (cif->bytes) : stack); switch (flags) { @@ -698,7 +700,7 @@ ffi_raw_call(ffi_cif *cif, void (*fn)(vo } } - bytes = cif->bytes; + bytes = STACK_ALIGN (cif->bytes); argp = stack = (void *)((uintptr_t)alloca(bytes + sizeof(*frame) + rsize + 15) & ~16); frame = (struct call_frame *)(stack + bytes);
