# # spec file for package libffi # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define libffi_sover 8 Name: libffi Version: 3.3.git30 Release: 1.15 Summary: Foreign Function Interface Library License: MIT Group: Development/Languages/C and C++ URL: https://github.com/libffi/ Source: %name-%version.tar.xz Source99: baselibs.conf # Workaround from https://github.com/libffi/libffi/issues/498 Patch3: aarch64.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: makeinfo BuildRequires: pkgconf-pkg-config # for make check BuildRequires: dejagnu BuildRequires: expect %description The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. %package devel Summary: Include files for development with libffi Group: Development/Languages/C and C++ Requires: libffi%{libffi_sover} = %{version} #PreReq: %{install_info_prereq} %description devel The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. %post devel %install_info --info-dir=%{_infodir} %{_infodir}/libffi.info.gz %preun devel %install_info_delete --info-dir=%{_infodir} %{_infodir}/libffi.info.gz %package -n libffi%{libffi_sover} Summary: Foreign Function Interface Library Group: System/Libraries %description -n libffi%{libffi_sover} The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. %post -n libffi%{libffi_sover} -p /sbin/ldconfig %postun -n libffi%{libffi_sover} -p /sbin/ldconfig %prep %setup -q %patch3 -p1 %build ./autogen.sh %configure make %{?_smp_mflags} %check # do not disable "make check", FIX THE BUGS! make %{?_smp_mflags} check %install make DESTDIR=%{buildroot} install # do not package the static library rm %{buildroot}%{_libdir}/libffi.a rm %{buildroot}%{_libdir}/libffi.la %files devel %defattr(-,root,root) %{_libdir}/libffi.so %{_prefix}/include/ffi.h %{_prefix}/include/ffitarget.h %{_libdir}/pkgconfig/libffi.pc %doc %{_mandir}/man3/ffi.3.gz %doc %{_mandir}/man3/ffi_call.3.gz %doc %{_mandir}/man3/ffi_prep_cif.3.gz %doc %{_mandir}/man3/ffi_prep_cif_var.3.gz %doc %{_infodir}/libffi.info.gz %files -n libffi%{libffi_sover} %defattr(-,root,root) %license LICENSE %{_libdir}/libffi.so.%{libffi_sover}* %changelog * Tue Mar 10 2020 Richard Biener - Update to commit b844a9c7f1ca based on libffi 3.3 with the following changes: Add RISC-V support. New API in support of GO closures. Add IEEE754 binary128 long double support for 64-bit Power Default to Microsoft's 64 bit long double ABI with Visual C++. GNU compiler uses 80 bits (128 in memory) FFI_GNUW64 ABI. Add Windows on ARM64 (WOA) support. Add Windows 32-bit ARM support. Raw java (gcj) API deprecated. Add pre-built PDF documentation to source distribution. Many new test cases and bug fixes. - SONAME change to libffi.so.8 - stdcall.patch is now upstream - Adjust baselibs.conf for SONAME change - Adjust aarch64.patch for upstream changes - Drop gccbug.patch XFAILing testcases that now PASS with fixed GCC 9.3 * Fri Oct 11 2019 Guillaume GARDET - Workaround aarch64 bug (boo#1153573) with upstream patch https://github.com/libffi/libffi/pull/499 updated to apply on current sources (upstream will probably rework this patch so we need to monitor the issue for the proper fix): * aarch64.patch * Wed Sep 18 2019 Andreas Schwab - 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 2018 rguenther@suse.com - Add libffi-devel-32bit package. * Mon Mar 12 2018 schwab@suse.de - libffi-riscv.patch: add support for RISC-V * Thu Feb 22 2018 fvogt@suse.com - Use %%license (boo#1082318) * Tue Feb 20 2018 schwab@suse.de - Remove aarch64-struct-by-value.patch, needs to be fixed in python. * Mon Sep 18 2017 schwab@suse.de - aarch64-struct-by-value.patch: fix passing struct by value on aarch64 * Tue Mar 14 2017 dleuenberger@suse.com - Add baselibs.conf in order to build libffi7-32bit (boo#1029263). * Tue Feb 28 2017 rguenther@suse.com - Change License to MIT. * Tue Feb 7 2017 jengelh@inai.de - Provide a _service file (and run it) * Tue Feb 7 2017 rguenther@suse.com - Package libffi from https://github.com/libffi at 60e4250a77eb3