mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-22 04:17:44 +00:00
- 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)
This commit is contained in:
parent
10a8b47b6d
commit
c1b7b44ee3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=207691
@ -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>
|
||||
|
@ -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
|
||||
|
29
devel/libffi/files/patch-Makefile.am-new
Normal file
29
devel/libffi/files/patch-Makefile.am-new
Normal file
@ -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
|
@ -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;;
|
@ -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
|
||||
|
@ -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 \
|
31
devel/libffi/files/patch-configure.ac
Normal file
31
devel/libffi/files/patch-configure.ac
Normal file
@ -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)
|
460
devel/libffi/files/patch-src-x86-freebsd.S
Normal file
460
devel/libffi/files/patch-src-x86-freebsd.S
Normal file
@ -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__ */
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user