On Wed, 24 Aug 2011 11:51:59 +0200 (CEST)
Antoine Jacoutot <[email protected]> wrote:
> On Wed, 24 Aug 2011, Remi Pointel wrote:
>
> > Hi,
> >
> > we have 2 solutions to use libffi (used by the standard ctypes library)
> > with Python:
> > -use libffi included with Python (patched with same patches than
> > devel/libffi)
> > -use devel/libffi in ports (concentrate patches/work on ffi here)
> >
> > Nowadays, we use the first solution, but it could be usefull to switch to
> > the second solution.
> >
> > Attached file is the diff to permit this.
> >
> > Are you ok?
>
> I don't think this is enough because powerpc will not include the
> ctypes PLIST fragment.
>
You're allright, this is the correct diff.
Are you ok ?
Please test on multiple arch.
Cheers,
Remi.
Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/python/Makefile.inc,v
retrieving revision 1.81
diff -u -p -r1.81 Makefile.inc
--- Makefile.inc 18 Jul 2011 15:32:18 -0000 1.81
+++ Makefile.inc 24 Aug 2011 12:29:55 -0000
@@ -58,8 +58,10 @@ RUN_DEPENDS-main =
WANTLIB-main = ssl panelw m crypto c util z readline pthread \
ncursesw stdc++ expat ossaudio bz2
.if ${VERSION} == "2.5" || ${VERSION} == "2.6" || ${VERSION} == "2.7"
-LIB_DEPENDS-main += databases/sqlite3
-WANTLIB-main += sqlite3
+LIB_DEPENDS-main += databases/sqlite3 \
+ devel/libffi
+WANTLIB-main += sqlite3 ffi
+CONFIGURE_ARGS += --with-system-ffi
.endif
LIB_DEPENDS-bsddb = databases/db/v4 \
@@ -84,18 +86,11 @@ PKG_ARGS+= -Dmm=0
PKG_ARGS+= -Dmm=1
.endif
-# XXX fix ctypes on powerpc for python2.6
-# The ctypes module is not supported on all platforms (in particular, ARM)
-.if ${VERSION} == "2.5" || ${VERSION} == "2.6" || ${VERSION} == "2.7"
-. if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || \
- ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64" || \
- ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "m68k" || \
- ${MACHINE_ARCH:Mmips64*} || \
- ( ${MACHINE_ARCH} == "powerpc" && ( ${VERSION} != "2.6" && ${VERSION} !=
"2.7" ) )
+# The ctypes module depends of devel/libffi, not supported on all platforms
+.if ${VERSION} == "2.5" || ${VERSION} == "2.7"
PKG_ARGS+= -Dctypes=1
-. else
+.else
PKG_ARGS+= -Dctypes=0
-. endif
.endif
USE_GROFF = Yes
Index: 2.5/Makefile
===================================================================
RCS file: /cvs/ports/lang/python/2.5/Makefile,v
retrieving revision 1.50
diff -u -p -r1.50 Makefile
--- 2.5/Makefile 18 Jul 2011 15:32:18 -0000 1.50
+++ 2.5/Makefile 24 Aug 2011 12:29:55 -0000
@@ -2,7 +2,7 @@
VERSION= 2.5
PATCHLEVEL= .4
-REVISION= 13
+REVISION= 14
SHARED_LIBS= python2.5 1.0
AUTOCONF_VERSION= 2.61
Index: 2.5/patches/patch-Modules__ctypes_libffi_configure
===================================================================
RCS file: 2.5/patches/patch-Modules__ctypes_libffi_configure
diff -N 2.5/patches/patch-Modules__ctypes_libffi_configure
--- 2.5/patches/patch-Modules__ctypes_libffi_configure 28 Feb 2010 15:27:37
-0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_configure,v 1.3 2010/02/28 15:27:37
phessler Exp $
---- Modules/_ctypes/libffi/configure.orig Wed Sep 5 01:47:16 2007
-+++ Modules/_ctypes/libffi/configure Sun Feb 28 13:56:32 2010
-@@ -3471,7 +3471,8 @@ fi
- TARGETDIR="unknown"
- case "$host" in
- x86_64-*-openbsd*) TARGET=X86_64; TARGETDIR=x86;;
--mips*-*-openbsd*) TARGET=MIPS; TARGETDIR=mips;;
-+mips*-*-openbsd*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
-+loongson-*-openbsd*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
- sparc-*-openbsd*) TARGET=SPARC; TARGETDIR=sparc;;
- sparc64-*-openbsd*) TARGET=SPARC; TARGETDIR=sparc;;
- alpha*-*-openbsd*) TARGET=ALPHA; TARGETDIR=alpha;;
Index: 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
===================================================================
RCS file: 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
diff -N 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
--- 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c 25 Feb 2010
11:02:39 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_src_mips_ffi_c,v 1.1 2010/02/25
11:02:39 phessler Exp $
-
-Allow building this on OpenBSD, where we don't provide the ICACHE related
-defines in cachectl.h, but in sysarch.h
-
---- Modules/_ctypes/libffi/src/mips/ffi.c.orig Sat Feb 20 16:32:04 2010
-+++ Modules/_ctypes/libffi/src/mips/ffi.c Sat Feb 20 16:33:13 2010
-@@ -27,7 +27,11 @@
- #include <ffi_common.h>
-
- #include <stdlib.h>
--#include <sys/cachectl.h>
-+#if defined(__OpenBSD__)
-+# include <mips64/sysarch.h>
-+#else
-+# include <sys/cachectl.h>
-+#endif
-
- #if _MIPS_SIM == _ABIN32
- #define FIX_ARGP \
Index: 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
===================================================================
RCS file: 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
diff -N 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
--- 2.5/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h 25 Feb
2010 11:02:39 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_src_mips_ffitarget_h,v 1.1 2010/02/25
11:02:39 phessler Exp $
-
-Allow _ctypes to build on mips64*
-
---- Modules/_ctypes/libffi/src/mips/ffitarget.h.orig Thu Mar 9 02:35:32 2006
-+++ Modules/_ctypes/libffi/src/mips/ffitarget.h Tue Feb 23 21:32:09 2010
-@@ -158,8 +158,8 @@ typedef enum ffi_abi {
- #define FFI_CLOSURES 1
- #define FFI_TRAMPOLINE_SIZE 20
- #else
--/* N32/N64 not implemented yet. */
--#define FFI_CLOSURES 0
-+#define FFI_CLOSURES 1
-+#define FFI_TRAMPOLINE_SIZE 52
- #endif /* FFI_MIPS_O32 */
- #define FFI_NATIVE_RAW_API 0
-
Index: 2.7/Makefile
===================================================================
RCS file: /cvs/ports/lang/python/2.7/Makefile,v
retrieving revision 1.12
diff -u -p -r1.12 Makefile
--- 2.7/Makefile 23 Aug 2011 07:08:23 -0000 1.12
+++ 2.7/Makefile 24 Aug 2011 12:29:55 -0000
@@ -2,7 +2,7 @@
VERSION = 2.7
PATCHLEVEL = .1
-REVISION = 10
+REVISION = 11
SHARED_LIBS = python2.7 0.0
AUTOCONF_VERSION = 2.65
Index: 2.7/patches/patch-Modules__ctypes_libffi_configure
===================================================================
RCS file: 2.7/patches/patch-Modules__ctypes_libffi_configure
diff -N 2.7/patches/patch-Modules__ctypes_libffi_configure
--- 2.7/patches/patch-Modules__ctypes_libffi_configure 6 Jul 2011 12:05:56
-0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_configure,v 1.2 2011/07/06 12:05:56
jasper Exp $
---- Modules/_ctypes/libffi/configure.orig Fri Mar 19 19:59:20 2010
-+++ Modules/_ctypes/libffi/configure Wed Jul 6 14:05:41 2011
-@@ -11254,7 +11254,7 @@ case "$host" in
- mips-sgi-irix5.* | mips-sgi-irix6.*)
- TARGET=MIPS_IRIX; TARGETDIR=mips
- ;;
-- mips*-*-linux*)
-+ mips*-*-linux* | mips*-*-openbsd*)
- # Support 128-bit long double for NewABI.
- HAVE_LONG_DOUBLE='defined(__mips64)'
- TARGET=MIPS_IRIX; TARGETDIR=mips
Index: 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
===================================================================
RCS file: 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
diff -N 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c
--- 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffi_c 24 Apr 2011
09:31:44 -0000 1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_src_mips_ffi_c,v 1.1.1.1 2011/04/24
09:31:44 rpointel Exp $
-
-Allow building this on OpenBSD, where we don't provide the ICACHE related
-defines in cachectl.h, but in sysarch.h
-
---- Modules/_ctypes/libffi/src/mips/ffi.c.orig Tue Feb 23 20:12:37 2010
-+++ Modules/_ctypes/libffi/src/mips/ffi.c Tue Feb 23 20:13:38 2010
-@@ -37,7 +37,11 @@
- #endif
-
- #ifndef USE__BUILTIN___CLEAR_CACHE
--#include <sys/cachectl.h>
-+#if defined(__OpenBSD__)
-+# include <mips64/sysarch.h>
-+#else
-+# include <sys/cachectl.h>
-+#endif
- #endif
-
- #ifdef FFI_DEBUG
Index: 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
===================================================================
RCS file: 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
diff -N 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h
--- 2.7/patches/patch-Modules__ctypes_libffi_src_mips_ffitarget_h 13 Jun
2011 19:43:59 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-Modules__ctypes_libffi_src_mips_ffitarget_h,v 1.1 2011/06/13
19:43:59 rpointel Exp $
---- Modules/_ctypes/libffi/src/mips/ffitarget.h.orig Mon Jun 13 14:31:24 2011
-+++ Modules/_ctypes/libffi/src/mips/ffitarget.h Mon Jun 13 14:36:33 2011
-@@ -27,10 +27,12 @@
- #ifndef LIBFFI_TARGET_H
- #define LIBFFI_TARGET_H
-
--#ifdef linux
--# include <asm/sgidefs.h>
--#else
--# include <sgidefs.h>
-+#if !defined(__OpenBSD__)
-+# ifdef linux
-+# include <asm/sgidefs.h>
-+# else
-+# include <sgidefs.h>
-+# endif
- #endif
- # ifndef _ABIN32
- # define _ABIN32 _MIPS_SIM_NABI32