Skip to content
Snippets Groups Projects
Commit abcd54a2 authored by Kevin Bowling's avatar Kevin Bowling
Browse files

devel/libffi: Update to 3.4.2

Drop lots of upstreamed patches.

Exp-run by:	antoine
PR:		263764
parent ae5ed34f
No related branches found
No related tags found
No related merge requests found
# Created by: Horance Chou <horance@freedom.ie.cycu.edu.tw>
PORTNAME= libffi
PORTVERSION= 3.3
PORTREVISION= 1
PORTVERSION= 3.4.2
CATEGORIES= devel
MASTER_SITES= SOURCEWARE/${PORTNAME}
PATCH_SITES= https://github.com/${PORTNAME}/${PORTNAME}/commit/
PATCHFILES+= 01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd.diff:-p1
# This patch is for configure.ac.
# A local patch against configure has been created in files/patch-configure.
#PATCHFILES+= 8c50837f0b58ba5b2bcb1b424a2a4bfa01559fb2.diff:-p1
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${PORTVERSION}/
MAINTAINER= kbowling@FreeBSD.org
COMMENT= Foreign Function Interface
......
TIMESTAMP = 1651590393
SHA256 (libffi-3.3.tar.gz) = 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056
SIZE (libffi-3.3.tar.gz) = 1305466
SHA256 (01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd.diff) = 79935f5836624a9b38d0d40541a9d7510f4ecff14f6a7881f483b158cf13d335
SIZE (01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd.diff) = 414
TIMESTAMP = 1651605317
SHA256 (libffi-3.4.2.tar.gz) = 540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620
SIZE (libffi-3.4.2.tar.gz) = 1351355
This patch is based on the following upstream patch
From 0027b072627aa9d3ada71c4374561966064ecd5a Mon Sep 17 00:00:00 2001
From: "M. Herdiansyah"
Date: Thu, 11 Jun 2020 19:40:24 +0700
Subject: [PATCH] Makefile: increase compatibility with bmake (#551)
--- Makefile.in.orig 2020-07-04 16:53:39 UTC
+++ Makefile.in
@@ -2012,7 +2012,7 @@ uninstall-am: uninstall-pkgconfigDATA uninstall-toolex
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1)
libffi.map: $(top_srcdir)/libffi.map.in
- $(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $<
+ $(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $(top_srcdir)/libffi.map.in
dist-hook:
d=`(cd $(distdir); pwd)`; (cd doc; make pdf; cp *.pdf $$d/doc)
--- configure.orig 2020-08-20 10:54:03 UTC
+++ configure
@@ -18545,17 +18545,11 @@ if ${libffi_cv_ro_eh_frame+:} false; then :
$as_echo_n "(cached) " >&6
else
- libffi_cv_ro_eh_frame=no
+ libffi_cv_ro_eh_frame=yes
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
if $CC $CFLAGS -c -fpic -fexceptions -o conftest.o conftest.c > /dev/null 2>&1; then
- objdump -h conftest.o > conftest.dump 2>&1
- libffi_eh_frame_line=`grep -n eh_frame conftest.dump | cut -d: -f 1`
- if test "x$libffi_eh_frame_line" != "x"; then
- libffi_test_line=`expr $libffi_eh_frame_line + 1`p
- sed -n $libffi_test_line conftest.dump > conftest.line
- if grep READONLY conftest.line > /dev/null; then
- libffi_cv_ro_eh_frame=yes
- fi
+ if readelf -WS conftest.o | grep -q -n 'eh_frame .* WA'; then
+ libffi_cv_ro_eh_frame=no
fi
fi
rm -f conftest.*
--- configure.host.orig 2019-11-22 17:55:36.000000000 -0600
+++ configure.host 2020-08-28 12:48:23.259024000 -0500
@@ -167,7 +167,7 @@ case "${host}" in
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
TARGET=MIPS; TARGETDIR=mips
;;
- mips*-*linux* | mips*-*-openbsd*)
+ mips*-*linux* | mips*-*-openbsd* | mips*-*-freebsd*)
# Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS; TARGETDIR=mips
@@ -203,7 +203,11 @@ case "${host}" in
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
HAVE_LONG_DOUBLE_VARIANT=1
;;
- powerpc64-*-freebsd*)
+ powerpcspe-*-freebsd*)
+ TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
+ CFLAGS="$CFLAGS -D__NO_FPRS__"
+ ;;
+ powerpc64-*-freebsd* | powerpc64le-*-freebsd*)
TARGET=POWERPC; TARGETDIR=powerpc
;;
powerpc*-*-rtems*)
# Description: Fix abort() on ARM related to __clear_cache(). This is an issue
# for anything !apple that is using the libcompiler_rt provided by clang on ARM
# PR: ports/149167 ports/184517
# Patch by: cognet@ (to be upstreamed @ LLVM)
--- src/arm/ffi.c.orig 2019-10-31 14:49:54 UTC
+++ src/arm/ffi.c
@@ -55,6 +55,11 @@ extern unsigned int ffi_arm_trampoline[3] FFI_HIDDEN;
#endif
#endif
+#if defined(__FreeBSD__) && defined(__arm__)
+#include <sys/types.h>
+#include <machine/sysarch.h>
+#endif
+
/* Forward declares. */
static int vfp_type_p (const ffi_type *);
static void layout_vfp_args (ffi_cif *);
@@ -568,6 +573,16 @@ void ffi_go_closure_SYSV (void) FFI_HIDDEN;
void ffi_go_closure_VFP (void) FFI_HIDDEN;
/* the cif must already be prep'ed */
+
+#if defined(__FreeBSD__) && defined(__arm__)
+#define __clear_cache(start, end) do { \
+ struct arm_sync_icache_args ua; \
+ \
+ ua.addr = (uintptr_t)(start); \
+ ua.len = (char *)(end) - (char *)start; \
+ sysarch(ARM_SYNC_ICACHE, &ua); \
+ } while (0);
+#endif
ffi_status
ffi_prep_closure_loc (ffi_closure * closure,
diff --git ./src/mips/ffi.c.orig ./src/mips/ffi.c
index 03121e3..8b7881f 100644
--- ./src/mips/ffi.c.orig
+++ ./src/mips/ffi.c
@@ -38,7 +38,9 @@
#endif
#ifndef USE__BUILTIN___CLEAR_CACHE
-# if defined(__OpenBSD__)
+# if defined(__FreeBSD__)
+# include <machine/sysarch.h>
+# elif defined(__OpenBSD__)
# include <mips64/sysarch.h>
# else
# include <sys/cachectl.h>
@@ -729,11 +731,13 @@ ffi_prep_closure_loc (ffi_closure *closure,
closure->fun = fun;
closure->user_data = user_data;
+#if !defined(__FreeBSD__)
#ifdef USE__BUILTIN___CLEAR_CACHE
__builtin___clear_cache(clear_location, clear_location + FFI_TRAMPOLINE_SIZE);
#else
cacheflush (clear_location, FFI_TRAMPOLINE_SIZE, ICACHE);
#endif
+#endif /* ! __FreeBSD__ */
return FFI_OK;
}
diff --git ./src/mips/ffitarget.h.orig ./src/mips/ffitarget.h
index 717d659..5a0c2b1 100644
--- ./src/mips/ffitarget.h.orig
+++ ./src/mips/ffitarget.h
@@ -41,7 +41,7 @@
#define _MIPS_SIM_ABI32 1
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
-#elif !defined(__OpenBSD__)
+#elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
# include <sgidefs.h>
#endif
......@@ -2,8 +2,8 @@ include/ffi.h
include/ffitarget.h
lib/libffi.a
lib/libffi.so
lib/libffi.so.7
lib/libffi.so.7.1.0
lib/libffi.so.8
lib/libffi.so.8.1.0
libdata/pkgconfig/libffi.pc
man/man3/ffi.3.gz
man/man3/ffi_call.3.gz
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment