Files
poky/meta/recipes-support/libffi/libffi_3.4.2.bb
Yi Zhao dadfef3950 libffi: disable use of static exec trampolines
We encountered a blueman-applet segfault with libffi 3.4.2:
$ blueman-applet
blueman-applet 01.58.45 WARNING  PluginManager:148 __load_plugin: Not loading DhcpClient because its conflict has higher priority
blueman-applet 01.58.45 WARNING  TransferService:189 _make_share_path: Failed to get Download dir from XDG
blueman-applet 01.58.45 WARNING  PluginManager:148 __load_plugin: Not loading PPPSupport because its conflict has higher priority
Segmentation fault

This is because the static exec trampolines is enabled by default in
libffi 3.4.2. However it doesn't work with gobject-introspection[1].

[1] 132699b95d

(From OE-Core rev: 2173003df3beedf49aa0ce30d79a1158179fa3e4)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-18 23:09:51 +01:00

37 lines
1.7 KiB
BlitzBasic

SUMMARY = "A portable foreign function interface library"
HOMEPAGE = "http://sourceware.org/libffi/"
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. FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the \
interface that allows code written in one language to call code written in another language. The `libffi' \
library really only provides the lowest, machine dependent layer of a fully featured foreign function interface. \
A layer must exist above `libffi' that handles type conversions for values passed between the two languages."
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=679b5c9bdc79a2b93ee574e193e7a7bc"
SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
file://not-win32.patch \
file://0001-arm-sysv-reverted-clang-VFP-mitigation.patch \
"
SRC_URI[sha256sum] = "540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620"
UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/"
UPSTREAM_CHECK_REGEX = "libffi-(?P<pver>\d+(\.\d+)+)\.tar"
EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp"
EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'"
inherit autotools texinfo multilib_header
do_install_append() {
oe_multilib_header ffi.h ffitarget.h
}
FILES_${PN}-dev += "${libdir}/libffi-${PV}"
# Doesn't compile in MIPS16e mode due to use of hand-written
# assembly
MIPS_INSTRUCTION_SET = "mips"
BBCLASSEXTEND = "native nativesdk"