aboutsummaryrefslogtreecommitdiffstats
path: root/devel/libffi
diff options
context:
space:
mode:
authorbeech <beech@FreeBSD.org>2008-02-21 17:07:17 +0800
committerbeech <beech@FreeBSD.org>2008-02-21 17:07:17 +0800
commitae2bae7a98df2ec2ed5321c4c1ceb1d773afe834 (patch)
treee63743f715321cb9830eb3233e8f1d908fa1c5b3 /devel/libffi
parentf9fb6d94ea4aeec0bc88b9de54c72b2584dba60c (diff)
downloadfreebsd-ports-gnome-ae2bae7a98df2ec2ed5321c4c1ceb1d773afe834.tar.gz
freebsd-ports-gnome-ae2bae7a98df2ec2ed5321c4c1ceb1d773afe834.tar.zst
freebsd-ports-gnome-ae2bae7a98df2ec2ed5321c4c1ceb1d773afe834.zip
- Update to 3.0.1
- Pass maintainership to submitter PR: ports/120736 Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de> Approved by: Horance Chou <horance@freera.net> (maintainer)
Diffstat (limited to 'devel/libffi')
-rw-r--r--devel/libffi/Makefile29
-rw-r--r--devel/libffi/distinfo6
-rw-r--r--devel/libffi/files/patch-Makefile.am-new29
-rw-r--r--devel/libffi/files/patch-aa11
-rw-r--r--devel/libffi/files/patch-ab11
-rw-r--r--devel/libffi/files/patch-ad20
-rw-r--r--devel/libffi/files/patch-configure.ac31
-rw-r--r--devel/libffi/files/patch-src-x86-freebsd.S460
-rw-r--r--devel/libffi/pkg-plist6
9 files changed, 542 insertions, 61 deletions
diff --git a/devel/libffi/Makefile b/devel/libffi/Makefile
index b5425d6eb3bf..6bb4791b6540 100644
--- a/devel/libffi/Makefile
+++ b/devel/libffi/Makefile
@@ -6,24 +6,27 @@
#
PORTNAME= libffi
-PORTVERSION= 1.20
-PORTREVISION= 1
+PORTVERSION= 3.0.1
CATEGORIES= devel
-MASTER_SITES= ftp://sources.redhat.com/pub/libffi/
+MASTER_SITES= ftp://sourceware.org/pub/libffi/
-MAINTAINER= horance@freera.net
+MAINTAINER= bkoenig@alpha-tierchen.de
COMMENT= Foreign Function Interface
-USE_AUTOTOOLS= libtool:15
-INSTALLS_SHLIB= yes
-CONFIGURE_TARGET= # empty
+GNU_CONFIGURE= yes
+USE_LDCONFIG= yes
+USE_AUTOTOOLS= automake:110 autoconf:261
-CONFLICTS= gcc-3*
+INFO= libffi
-.include <bsd.port.pre.mk>
+MAN3= ffi.3 ffi_call.3 ffi_prep_cif.3
-.if ${ARCH} != "i386" && ${ARCH} != "alpha"
-BROKEN= "Configure fails on !i386 and !alpha"
-.endif
+pre-configure:
+ @${REINPLACE_CMD} -e 's,^\(includesdir = \).*,\1$$(includedir),' \
+ ${WRKSRC}/include/Makefile.am
-.include <bsd.port.post.mk>
+post-configure:
+ @${REINPLACE_CMD} -e 's,^\(transform = \).*,\1,' \
+ ${WRKSRC}/man/Makefile
+
+.include <bsd.port.mk>
diff --git a/devel/libffi/distinfo b/devel/libffi/distinfo
index ef2c9a97371b..20048f938a54 100644
--- a/devel/libffi/distinfo
+++ b/devel/libffi/distinfo
@@ -1,3 +1,3 @@
-MD5 (libffi-1.20.tar.gz) = e4c9c435ebdfcba6fa493fb1abce2ddc
-SHA256 (libffi-1.20.tar.gz) = 794a23a3feacc11ef431fae9ad79c33b98043cefd6b001707596ca93085dedaa
-SIZE (libffi-1.20.tar.gz) = 109484
+MD5 (libffi-3.0.1.tar.gz) = 6f6cea82a8dfe6126d207fd6113ad632
+SHA256 (libffi-3.0.1.tar.gz) = f68e16619b9eb67b1a0fbfcb4ae827f9154fece03ab35366f6896417bd021292
+SIZE (libffi-3.0.1.tar.gz) = 719044
diff --git a/devel/libffi/files/patch-Makefile.am-new b/devel/libffi/files/patch-Makefile.am-new
new file mode 100644
index 000000000000..1e60b9b05eba
--- /dev/null
+++ b/devel/libffi/files/patch-Makefile.am-new
@@ -0,0 +1,29 @@
+--- Makefile.am 2008-02-15 00:42:33.000000000 +0000
++++ Makefile.am 2008-02-21 01:50:41.000000000 +0000
+@@ -26,6 +26,7 @@
+ src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
+ src/sparc/ffi.c src/x86/darwin64.S \
+ src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/darwin.S \
++ src/x86/freebsd.S \
+ src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
+ src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
+ src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
+@@ -84,7 +85,7 @@
+ libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
+ src/raw_api.c src/java_raw_api.c src/closures.c
+
+-pkgconfigdir = $(libdir)/pkgconfig
++pkgconfigdir = $(prefix)/libdata/pkgconfig
+ pkgconfig_DATA = libffi.pc
+
+ nodist_libffi_la_SOURCES =
+@@ -95,6 +96,9 @@
+ if X86
+ nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
+ endif
++if X86_FREEBSD
++nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
++endif
+ if X86_WIN32
+ nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
+ endif
diff --git a/devel/libffi/files/patch-aa b/devel/libffi/files/patch-aa
deleted file mode 100644
index ffcd5f8ee6fc..000000000000
--- a/devel/libffi/files/patch-aa
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig Mon Oct 5 04:26:04 1998
-+++ configure Sun May 30 19:01:51 1999
-@@ -1415,6 +1415,8 @@
- case "$host" in
- mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
- i*86-pc-linux*) TARGET=X86; TARGETDIR=x86;;
-+i*86-unknown-freebsd*) TARGET=X86; TARGETDIR=x86;;
-+alpha-unknown-freebsd*) TARGET=ALPHA; TARGETDIR=alpha;;
- sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
- sparc-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
- alpha*-*-linux* | alpha*-*-osf*) TARGET=ALPHA; TARGETDIR=alpha;;
diff --git a/devel/libffi/files/patch-ab b/devel/libffi/files/patch-ab
deleted file mode 100644
index ddc5c8d4e794..000000000000
--- a/devel/libffi/files/patch-ab
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/x86/sysv.S.orig Mon Oct 5 16:36:28 1998
-+++ src/x86/sysv.S Sat Oct 24 00:56:07 1998
-@@ -33,7 +33,7 @@
- .globl ffi_prep_args
-
- # This assumes we are using gas.
-- .balign 16
-+ .align 4
- .globl ffi_call_SYSV
- .type ffi_call_SYSV,@function
-
diff --git a/devel/libffi/files/patch-ad b/devel/libffi/files/patch-ad
deleted file mode 100644
index 3dff2eb4f6b2..000000000000
--- a/devel/libffi/files/patch-ad
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/Makefile.in.orig Mon Oct 5 04:26:33 1998
-+++ src/Makefile.in Sun May 30 21:48:55 1999
-@@ -164,7 +164,7 @@
- SOURCES = $(libffi_la_SOURCES) $(ffitest_SOURCES)
- OBJECTS = $(libffi_la_OBJECTS) $(ffitest_OBJECTS)
-
--all: Makefile $(LTLIBRARIES) $(PROGRAMS)
-+all: Makefile $(LTLIBRARIES)
-
- .SUFFIXES:
- .SUFFIXES: .S .c .lo .o .s
-@@ -296,7 +296,7 @@
- done
- debug.o debug.lo: debug.c ../include/ffi.h ../fficonfig.h \
- ../include/ffi_common.h
--ffi.o ffi.lo: x86/ffi.c ../include/ffi.h ../fficonfig.h \
-+ffi.o ffi.lo: @TARGETDIR@/ffi.c ../include/ffi.h ../fficonfig.h \
- ../include/ffi_common.h
- ffitest.o ffitest.lo: ffitest.c ../include/ffi.h ../fficonfig.h
- prep_cif.o prep_cif.lo: prep_cif.c ../include/ffi.h ../fficonfig.h \
diff --git a/devel/libffi/files/patch-configure.ac b/devel/libffi/files/patch-configure.ac
new file mode 100644
index 000000000000..24d3245fcc5b
--- /dev/null
+++ b/devel/libffi/files/patch-configure.ac
@@ -0,0 +1,31 @@
+--- configure.ac 2008-02-16 01:51:30.000000000 +0100
++++ configure.ac 2008-02-21 02:03:35.000000000 +0100
+@@ -45,6 +45,10 @@
+ HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
+ ;;
+
++ amd64-*-freebsd*)
++ TARGET=X86_64; TARGETDIR=x86
++ ;;
++
+ arm*-*-*)
+ TARGET=ARM; TARGETDIR=arm
+ ;;
+@@ -67,6 +71,9 @@
+ TARGET=PA_HPUX; TARGETDIR=pa
+ ;;
+
++ i386-*-freebsd*)
++ TARGET=X86_FREEBSD; TARGETDIR=x86
++ ;;
+ i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
+ TARGET=X86_WIN32; TARGETDIR=x86
+ ;;
+@@ -152,6 +159,7 @@
+ AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
+ AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
+ AM_CONDITIONAL(X86, test x$TARGET = xX86)
++AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
+ AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
+ AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
+ AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
diff --git a/devel/libffi/files/patch-src-x86-freebsd.S b/devel/libffi/files/patch-src-x86-freebsd.S
new file mode 100644
index 000000000000..1452f5a49fc3
--- /dev/null
+++ b/devel/libffi/files/patch-src-x86-freebsd.S
@@ -0,0 +1,460 @@
+--- src/x86/freebsd.S 1970-01-01 01:00:00.000000000 +0100
++++ src/x86/freebsd.S 2008-02-21 02:01:27.000000000 +0100
+@@ -0,0 +1,457 @@
++/* -----------------------------------------------------------------------
++ freebsd.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005 Red Hat, Inc.
++
++ X86 Foreign Function Interface
++
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ ``Software''), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++
++ The above copyright notice and this permission notice shall be included
++ in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
++ ANY CLAIM, DAMAGES OR
++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ OTHER DEALINGS IN THE SOFTWARE.
++ ----------------------------------------------------------------------- */
++
++#ifndef __x86_64__
++
++#define LIBFFI_ASM
++#include <fficonfig.h>
++#include <ffi.h>
++
++.text
++
++.globl ffi_prep_args
++
++ .align 4
++.globl ffi_call_SYSV
++ .type ffi_call_SYSV,@function
++
++ffi_call_SYSV:
++.LFB1:
++ pushl %ebp
++.LCFI0:
++ movl %esp,%ebp
++.LCFI1:
++ /* Make room for all of the new args. */
++ movl 16(%ebp),%ecx
++ subl %ecx,%esp
++
++ movl %esp,%eax
++
++ /* Place all of the ffi_prep_args in position */
++ pushl 12(%ebp)
++ pushl %eax
++ call *8(%ebp)
++
++ /* Return stack to previous state and call the function */
++ addl $8,%esp
++
++ call *28(%ebp)
++
++ /* Load %ecx with the return type code */
++ movl 20(%ebp),%ecx
++
++ /* Protect %esi. We're going to pop it in the epilogue. */
++ pushl %esi
++
++ /* If the return value pointer is NULL, assume no return value. */
++ cmpl $0,24(%ebp)
++ jne 0f
++
++ /* Even if there is no space for the return value, we are
++ obliged to handle floating-point values. */
++ cmpl $FFI_TYPE_FLOAT,%ecx
++ jne noretval
++ fstp %st(0)
++
++ jmp epilogue
++
++0:
++ call 1f
++
++.Lstore_table:
++ .long noretval-.Lstore_table /* FFI_TYPE_VOID */
++ .long retint-.Lstore_table /* FFI_TYPE_INT */
++ .long retfloat-.Lstore_table /* FFI_TYPE_FLOAT */
++ .long retdouble-.Lstore_table /* FFI_TYPE_DOUBLE */
++ .long retlongdouble-.Lstore_table /* FFI_TYPE_LONGDOUBLE */
++ .long retuint8-.Lstore_table /* FFI_TYPE_UINT8 */
++ .long retsint8-.Lstore_table /* FFI_TYPE_SINT8 */
++ .long retuint16-.Lstore_table /* FFI_TYPE_UINT16 */
++ .long retsint16-.Lstore_table /* FFI_TYPE_SINT16 */
++ .long retint-.Lstore_table /* FFI_TYPE_UINT32 */
++ .long retint-.Lstore_table /* FFI_TYPE_SINT32 */
++ .long retint64-.Lstore_table /* FFI_TYPE_UINT64 */
++ .long retint64-.Lstore_table /* FFI_TYPE_SINT64 */
++ .long retstruct-.Lstore_table /* FFI_TYPE_STRUCT */
++ .long retint-.Lstore_table /* FFI_TYPE_POINTER */
++ .long retstruct1b-.Lstore_table /* FFI_TYPE_SMALL_STRUCT_1B */
++ .long retstruct2b-.Lstore_table /* FFI_TYPE_SMALL_STRUCT_2B */
++
++1:
++ pop %esi
++ add (%esi, %ecx, 4), %esi
++ jmp *%esi
++
++ /* Sign/zero extend as appropriate. */
++retsint8:
++ movsbl %al, %eax
++ jmp retint
++
++retsint16:
++ movswl %ax, %eax
++ jmp retint
++
++retuint8:
++ movzbl %al, %eax
++ jmp retint
++
++retuint16:
++ movzwl %ax, %eax
++ jmp retint
++
++retfloat:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ fstps (%ecx)
++ jmp epilogue
++
++retdouble:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ fstpl (%ecx)
++ jmp epilogue
++
++retlongdouble:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ fstpt (%ecx)
++ jmp epilogue
++
++retint64:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ movl %eax,0(%ecx)
++ movl %edx,4(%ecx)
++ jmp epilogue
++
++retstruct1b:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ movb %al,0(%ecx)
++ jmp epilogue
++
++retstruct2b:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ movw %ax,0(%ecx)
++ jmp epilogue
++
++retint:
++ /* Load %ecx with the pointer to storage for the return value */
++ movl 24(%ebp),%ecx
++ movl %eax,0(%ecx)
++
++retstruct:
++ /* Nothing to do! */
++
++noretval:
++epilogue:
++ popl %esi
++ movl %ebp,%esp
++ popl %ebp
++ ret
++.LFE1:
++.ffi_call_SYSV_end:
++ .size ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
++
++ .align 4
++FFI_HIDDEN (ffi_closure_SYSV)
++.globl ffi_closure_SYSV
++ .type ffi_closure_SYSV, @function
++
++ffi_closure_SYSV:
++.LFB2:
++ pushl %ebp
++.LCFI2:
++ movl %esp, %ebp
++.LCFI3:
++ subl $40, %esp
++ leal -24(%ebp), %edx
++ movl %edx, -12(%ebp) /* resp */
++ leal 8(%ebp), %edx
++ movl %edx, 4(%esp) /* args = __builtin_dwarf_cfa () */
++ leal -12(%ebp), %edx
++ movl %edx, (%esp) /* &resp */
++#if defined HAVE_HIDDEN_VISIBILITY_ATTRIBUTE || !defined __PIC__
++ call ffi_closure_SYSV_inner
++#else
++ movl %ebx, 8(%esp)
++.LCFI7:
++ call 1f
++1: popl %ebx
++ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
++ call ffi_closure_SYSV_inner@PLT
++ movl 8(%esp), %ebx
++#endif
++ movl -12(%ebp), %ecx
++ cmpl $FFI_TYPE_INT, %eax
++ je .Lcls_retint
++
++ /* Handle FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16,
++ FFI_TYPE_SINT16, FFI_TYPE_UINT32, FFI_TYPE_SINT32. */
++ cmpl $FFI_TYPE_UINT64, %eax
++ jge 0f
++ cmpl $FFI_TYPE_UINT8, %eax
++ jge .Lcls_retint
++
++0: cmpl $FFI_TYPE_FLOAT, %eax
++ je .Lcls_retfloat
++ cmpl $FFI_TYPE_DOUBLE, %eax
++ je .Lcls_retdouble
++ cmpl $FFI_TYPE_LONGDOUBLE, %eax
++ je .Lcls_retldouble
++ cmpl $FFI_TYPE_SINT64, %eax
++ je .Lcls_retllong
++ cmpl $FFI_TYPE_SMALL_STRUCT_1B, %eax
++ je .Lcls_retstruct1b
++ cmpl $FFI_TYPE_SMALL_STRUCT_2B, %eax
++ je .Lcls_retstruct2b
++ cmpl $FFI_TYPE_STRUCT, %eax
++ je .Lcls_retstruct
++.Lcls_epilogue:
++ movl %ebp, %esp
++ popl %ebp
++ ret
++.Lcls_retint:
++ movl (%ecx), %eax
++ jmp .Lcls_epilogue
++.Lcls_retfloat:
++ flds (%ecx)
++ jmp .Lcls_epilogue
++.Lcls_retdouble:
++ fldl (%ecx)
++ jmp .Lcls_epilogue
++.Lcls_retldouble:
++ fldt (%ecx)
++ jmp .Lcls_epilogue
++.Lcls_retllong:
++ movl (%ecx), %eax
++ movl 4(%ecx), %edx
++ jmp .Lcls_epilogue
++.Lcls_retstruct1b:
++ movsbl (%ecx), %eax
++ jmp .Lcls_epilogue
++.Lcls_retstruct2b:
++ movswl (%ecx), %eax
++ jmp .Lcls_epilogue
++.Lcls_retstruct:
++ movl %ebp, %esp
++ popl %ebp
++ ret $4
++.LFE2:
++ .size ffi_closure_SYSV, .-ffi_closure_SYSV
++
++#if !FFI_NO_RAW_API
++
++#define RAW_CLOSURE_CIF_OFFSET ((FFI_TRAMPOLINE_SIZE + 3) & ~3)
++#define RAW_CLOSURE_FUN_OFFSET (RAW_CLOSURE_CIF_OFFSET + 4)
++#define RAW_CLOSURE_USER_DATA_OFFSET (RAW_CLOSURE_FUN_OFFSET + 4)
++#define CIF_FLAGS_OFFSET 20
++
++ .align 4
++FFI_HIDDEN (ffi_closure_raw_SYSV)
++.globl ffi_closure_raw_SYSV
++ .type ffi_closure_raw_SYSV, @function
++
++ffi_closure_raw_SYSV:
++.LFB3:
++ pushl %ebp
++.LCFI4:
++ movl %esp, %ebp
++.LCFI5:
++ pushl %esi
++.LCFI6:
++ subl $36, %esp
++ movl RAW_CLOSURE_CIF_OFFSET(%eax), %esi /* closure->cif */
++ movl RAW_CLOSURE_USER_DATA_OFFSET(%eax), %edx /* closure->user_data */
++ movl %edx, 12(%esp) /* user_data */
++ leal 8(%ebp), %edx /* __builtin_dwarf_cfa () */
++ movl %edx, 8(%esp) /* raw_args */
++ leal -24(%ebp), %edx
++ movl %edx, 4(%esp) /* &res */
++ movl %esi, (%esp) /* cif */
++ call *RAW_CLOSURE_FUN_OFFSET(%eax) /* closure->fun */
++ movl CIF_FLAGS_OFFSET(%esi), %eax /* rtype */
++ cmpl $FFI_TYPE_INT, %eax
++ je .Lrcls_retint
++
++ /* Handle FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16,
++ FFI_TYPE_SINT16, FFI_TYPE_UINT32, FFI_TYPE_SINT32. */
++ cmpl $FFI_TYPE_UINT64, %eax
++ jge 0f
++ cmpl $FFI_TYPE_UINT8, %eax
++ jge .Lrcls_retint
++0:
++ cmpl $FFI_TYPE_FLOAT, %eax
++ je .Lrcls_retfloat
++ cmpl $FFI_TYPE_DOUBLE, %eax
++ je .Lrcls_retdouble
++ cmpl $FFI_TYPE_LONGDOUBLE, %eax
++ je .Lrcls_retldouble
++ cmpl $FFI_TYPE_SINT64, %eax
++ je .Lrcls_retllong
++.Lrcls_epilogue:
++ addl $36, %esp
++ popl %esi
++ popl %ebp
++ ret
++.Lrcls_retint:
++ movl -24(%ebp), %eax
++ jmp .Lrcls_epilogue
++.Lrcls_retfloat:
++ flds -24(%ebp)
++ jmp .Lrcls_epilogue
++.Lrcls_retdouble:
++ fldl -24(%ebp)
++ jmp .Lrcls_epilogue
++.Lrcls_retldouble:
++ fldt -24(%ebp)
++ jmp .Lrcls_epilogue
++.Lrcls_retllong:
++ movl -24(%ebp), %eax
++ movl -20(%ebp), %edx
++ jmp .Lrcls_epilogue
++.LFE3:
++ .size ffi_closure_raw_SYSV, .-ffi_closure_raw_SYSV
++#endif
++
++ .section .eh_frame,EH_FRAME_FLAGS,@progbits
++.Lframe1:
++ .long .LECIE1-.LSCIE1 /* Length of Common Information Entry */
++.LSCIE1:
++ .long 0x0 /* CIE Identifier Tag */
++ .byte 0x1 /* CIE Version */
++#ifdef __PIC__
++ .ascii "zR\0" /* CIE Augmentation */
++#else
++ .ascii "\0" /* CIE Augmentation */
++#endif
++ .byte 0x1 /* .uleb128 0x1; CIE Code Alignment Factor */
++ .byte 0x7c /* .sleb128 -4; CIE Data Alignment Factor */
++ .byte 0x8 /* CIE RA Column */
++#ifdef __PIC__
++ .byte 0x1 /* .uleb128 0x1; Augmentation size */
++ .byte 0x1b /* FDE Encoding (pcrel sdata4) */
++#endif
++ .byte 0xc /* DW_CFA_def_cfa */
++ .byte 0x4 /* .uleb128 0x4 */
++ .byte 0x4 /* .uleb128 0x4 */
++ .byte 0x88 /* DW_CFA_offset, column 0x8 */
++ .byte 0x1 /* .uleb128 0x1 */
++ .align 4
++.LECIE1:
++.LSFDE1:
++ .long .LEFDE1-.LASFDE1 /* FDE Length */
++.LASFDE1:
++ .long .LASFDE1-.Lframe1 /* FDE CIE offset */
++#ifdef __PIC__
++ .long .LFB1-. /* FDE initial location */
++#else
++ .long .LFB1 /* FDE initial location */
++#endif
++ .long .LFE1-.LFB1 /* FDE address range */
++#ifdef __PIC__
++ .byte 0x0 /* .uleb128 0x0; Augmentation size */
++#endif
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI0-.LFB1
++ .byte 0xe /* DW_CFA_def_cfa_offset */
++ .byte 0x8 /* .uleb128 0x8 */
++ .byte 0x85 /* DW_CFA_offset, column 0x5 */
++ .byte 0x2 /* .uleb128 0x2 */
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI1-.LCFI0
++ .byte 0xd /* DW_CFA_def_cfa_register */
++ .byte 0x5 /* .uleb128 0x5 */
++ .align 4
++.LEFDE1:
++.LSFDE2:
++ .long .LEFDE2-.LASFDE2 /* FDE Length */
++.LASFDE2:
++ .long .LASFDE2-.Lframe1 /* FDE CIE offset */
++#ifdef __PIC__
++ .long .LFB2-. /* FDE initial location */
++#else
++ .long .LFB2
++#endif
++ .long .LFE2-.LFB2 /* FDE address range */
++#ifdef __PIC__
++ .byte 0x0 /* .uleb128 0x0; Augmentation size */
++#endif
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI2-.LFB2
++ .byte 0xe /* DW_CFA_def_cfa_offset */
++ .byte 0x8 /* .uleb128 0x8 */
++ .byte 0x85 /* DW_CFA_offset, column 0x5 */
++ .byte 0x2 /* .uleb128 0x2 */
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI3-.LCFI2
++ .byte 0xd /* DW_CFA_def_cfa_register */
++ .byte 0x5 /* .uleb128 0x5 */
++#if !defined HAVE_HIDDEN_VISIBILITY_ATTRIBUTE && defined __PIC__
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI7-.LCFI3
++ .byte 0x83 /* DW_CFA_offset, column 0x3 */
++ .byte 0xa /* .uleb128 0xa */
++#endif
++ .align 4
++.LEFDE2:
++
++#if !FFI_NO_RAW_API
++
++.LSFDE3:
++ .long .LEFDE3-.LASFDE3 /* FDE Length */
++.LASFDE3:
++ .long .LASFDE3-.Lframe1 /* FDE CIE offset */
++#ifdef __PIC__
++ .long .LFB3-. /* FDE initial location */
++#else
++ .long .LFB3
++#endif
++ .long .LFE3-.LFB3 /* FDE address range */
++#ifdef __PIC__
++ .byte 0x0 /* .uleb128 0x0; Augmentation size */
++#endif
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI4-.LFB3
++ .byte 0xe /* DW_CFA_def_cfa_offset */
++ .byte 0x8 /* .uleb128 0x8 */
++ .byte 0x85 /* DW_CFA_offset, column 0x5 */
++ .byte 0x2 /* .uleb128 0x2 */
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI5-.LCFI4
++ .byte 0xd /* DW_CFA_def_cfa_register */
++ .byte 0x5 /* .uleb128 0x5 */
++ .byte 0x4 /* DW_CFA_advance_loc4 */
++ .long .LCFI6-.LCFI5
++ .byte 0x86 /* DW_CFA_offset, column 0x6 */
++ .byte 0x3 /* .uleb128 0x3 */
++ .align 4
++.LEFDE3:
++
++#endif
++
++#endif /* ifndef __x86_64__ */
diff --git a/devel/libffi/pkg-plist b/devel/libffi/pkg-plist
index 3b9ac3230b55..e7fca45f5fb0 100644
--- a/devel/libffi/pkg-plist
+++ b/devel/libffi/pkg-plist
@@ -1,7 +1,7 @@
-include/fficonfig.h
include/ffi.h
-include/ffi_mips.h
+include/ffitarget.h
lib/libffi.a
lib/libffi.la
lib/libffi.so
-lib/libffi.so.2
+lib/libffi.so.5
+libdata/pkgconfig/libffi.pc