ports/122398: [maintainer update] Update devel/libffi to 3.0.4

Björn König bkoenig at alpha-tierchen.de
Thu Apr 3 08:20:02 UTC 2008


>Number:         122398
>Category:       ports
>Synopsis:       [maintainer update] Update devel/libffi to 3.0.4
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 03 08:20:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Björn König
>Release:        
>Organization:
>Environment:

>Description:
	The patch below updates the port devel/libffi to 3.0.4 and does
	other things. Changes are:
	
	- remove FreeBSD-specific patch, because it went upstream \o/
	- add patch that fixes build on FreeBSD/arm
	- use default location for header files, i.e.
	  ${LOCALBASE}/lib/libffi-x.x.x instead of ${LOCALBASE}/include
	- apply gnomehack and use gnometarget

>How-To-Repeat:
	
>Fix:

	

--- devel-libffi.diff begins here ---
diff --git a/devel/libffi/Makefile b/devel/libffi/Makefile
index 28f10f1..528dd36 100644
--- a/devel/libffi/Makefile
+++ b/devel/libffi/Makefile
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	libffi
-PORTVERSION=	3.0.1
+PORTVERSION=	3.0.4
 CATEGORIES=	devel
 MASTER_SITES=	ftp://sourceware.org/pub/libffi/
 
@@ -15,18 +15,11 @@ COMMENT=	Foreign Function Interface
 
 GNU_CONFIGURE=	yes
 USE_LDCONFIG=	yes
-USE_AUTOTOOLS=	automake:110 autoconf:261
+USE_GNOME=	gnomehack gnometarget
+PLIST_SUB=	PORTVERSION=${PORTVERSION}
 
 INFO=		libffi
 
 MAN3=		ffi.3 ffi_call.3 ffi_prep_cif.3
 
-pre-configure:
-		@${REINPLACE_CMD} -e 's,^\(includesdir = \).*,\1$$(includedir),' \
-			${WRKSRC}/include/Makefile.am
-
-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 20048f9..1a12f48 100644
--- a/devel/libffi/distinfo
+++ b/devel/libffi/distinfo
@@ -1,3 +1,3 @@
-MD5 (libffi-3.0.1.tar.gz) = 6f6cea82a8dfe6126d207fd6113ad632
-SHA256 (libffi-3.0.1.tar.gz) = f68e16619b9eb67b1a0fbfcb4ae827f9154fece03ab35366f6896417bd021292
-SIZE (libffi-3.0.1.tar.gz) = 719044
+MD5 (libffi-3.0.4.tar.gz) = eea52a0f7929182da1f393d43ed231c5
+SHA256 (libffi-3.0.4.tar.gz) = 2f3ca5852a89115846eeff53e3cc26a1e298d2698e54c4f0671984791ab14d8a
+SIZE (libffi-3.0.4.tar.gz) = 722782
diff --git a/devel/libffi/files/patch-Makefile.am-new b/devel/libffi/files/patch-Makefile.am-new
deleted file mode 100644
index 1e60b9b..0000000
--- a/devel/libffi/files/patch-Makefile.am-new
+++ /dev/null
@@ -1,29 +0,0 @@
---- 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-configure.ac b/devel/libffi/files/patch-configure.ac
deleted file mode 100644
index 24d3245..0000000
--- a/devel/libffi/files/patch-configure.ac
+++ /dev/null
@@ -1,31 +0,0 @@
---- 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
deleted file mode 100644
index 1452f5a..0000000
--- a/devel/libffi/files/patch-src-x86-freebsd.S
+++ /dev/null
@@ -1,460 +0,0 @@
---- 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, at 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 at 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, at 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/files/patch-src_arm_sysv.S b/devel/libffi/files/patch-src_arm_sysv.S
new file mode 100644
index 0000000..ebdd681
--- /dev/null
+++ b/devel/libffi/files/patch-src_arm_sysv.S
@@ -0,0 +1,73 @@
+--- src/arm/sysv.S.orig	2008-02-15 02:15:41.000000000 +0100
++++ src/arm/sysv.S	2008-04-01 13:25:02.000000000 +0200
+@@ -83,14 +83,6 @@
+ # define call_reg(x)	mov	lr, pc ; mov	pc, x
+ #endif
+ 
+-/* Conditionally compile unwinder directives.  */
+-#ifdef __ARM_EABI__
+-#define UNWIND
+-#else
+-#define UNWIND @
+-#endif	
+-
+-	
+ #if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
+ .macro	ARM_FUNC_START name
+ 	.text
+@@ -101,7 +93,6 @@
+ 	bx	pc
+ 	nop
+ 	.arm
+-	UNWIND .fnstart
+ /* A hook to tell gdb that we've switched to ARM mode.  Also used to call
+    directly from other local arm routines.  */
+ _L__\name:		
+@@ -112,7 +103,6 @@
+ 	.align 0
+ 	.arm
+ 	ENTRY(\name)
+-	UNWIND .fnstart
+ .endm
+ #endif
+ 
+@@ -145,11 +135,8 @@
+ ARM_FUNC_START ffi_call_SYSV
+ 	@ Save registers
+         stmfd	sp!, {r0-r3, fp, lr}
+-	UNWIND .save	{r0-r3, fp, lr}
+ 	mov	fp, sp
+ 
+-	UNWIND .setfp	fp, sp
+-
+ 	@ Make room for all of the new args.
+ 	sub	sp, fp, r2
+ 
+@@ -219,7 +206,6 @@
+ 	RETLDM	"r0-r3,fp"
+ 
+ .ffi_call_SYSV_end:
+-	UNWIND .fnend
+         .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
+ 
+ /*
+@@ -231,12 +217,9 @@
+ */
+ 
+ ARM_FUNC_START ffi_closure_SYSV
+-	UNWIND .pad #16
+ 	add	ip, sp, #16
+ 	stmfd	sp!, {ip, lr}
+-	UNWIND .save	{r0, lr}
+ 	add	r2, sp, #8
+-	.pad #16
+ 	sub	sp, sp, #16
+ 	str	sp, [sp, #8]
+ 	add	r1, sp, #8
+@@ -291,6 +274,5 @@
+ #endif
+ 
+ .ffi_closure_SYSV_end:
+-	UNWIND .fnend
+         .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
+ 
diff --git a/devel/libffi/pkg-plist b/devel/libffi/pkg-plist
index e7fca45..f006989 100644
--- a/devel/libffi/pkg-plist
+++ b/devel/libffi/pkg-plist
@@ -1,5 +1,5 @@
-include/ffi.h
-include/ffitarget.h
+lib/libffi-%%PORTVERSION%%/include/ffi.h
+lib/libffi-%%PORTVERSION%%/include/ffitarget.h
 lib/libffi.a
 lib/libffi.la
 lib/libffi.so
--- devel-libffi.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list