Kaydet (Commit) 794e2e60 authored tarafından David Tardon's avatar David Tardon

(incomplete) attempt to build internal python with MinGW

Change-Id: I39c880e8615b164a66eb900c11b26da9d6489e02
üst 62cab9f5
......@@ -424,6 +424,7 @@ export PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
export PTHREAD_LIBS=@PTHREAD_LIBS@
export PYTHON=@PYTHON@
export PYTHON_CFLAGS=@PYTHON_CFLAGS@
export PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
export PYTHON_LIBS=@PYTHON_LIBS@
export RANLIB=@RANLIB@
export REDLAND_CFLAGS=@REDLAND_CFLAGS@
......
......@@ -3543,8 +3543,8 @@ if test "$cross_compiling" = "yes"; then
cp config.log ../config.Build.log
sed -e 's,=\(.*\),="\1",' < config_host.mk > config_host.sh
. ./config_host.sh
for V in COM GUI GUIBASE OS CPU CPUNAME CC CXX GXX_INCLUDE_PATH MACOSX_DEPLOYMENT_TARGET INPATH OUTPATH \
SYSTEM_LIBXSLT; do
for V in COM GUI GUIBASE OS CPU CPUNAME CC CXX DISABLE_PYTHON GXX_INCLUDE_PATH MACOSX_DEPLOYMENT_TARGET INPATH OUTPATH \
PYTHON SYSTEM_LIBXSLT; do
VV='$'$V
VV=`eval "echo $VV"`
if test -n "$VV"; then
......@@ -3581,6 +3581,7 @@ else
CPUNAME_FOR_BUILD="$CPUNAME"
CPU_FOR_BUILD="$CPU"
CXX_FOR_BUILD="$CXX"
DISABLE_PYTHON_FOR_BUILD="$DISABLE_PYTHON"
GUIBASE_FOR_BUILD="$GUIBASE"
GUI_FOR_BUILD="$GUI"
INPATH_FOR_BUILD="$INPATH"
......@@ -3588,6 +3589,7 @@ else
OS_FOR_BUILD="$OS"
OUTDIR_FOR_BUILD="$OUTDIR"
OUTPATH_FOR_BUILD="$OUTPATH"
PYTHON_FOR_BUILD="$PYTHON"
WORKDIR_FOR_BUILD="$WORKDIR"
fi
AC_SUBST(COM_FOR_BUILD)
......@@ -3601,6 +3603,7 @@ AC_SUBST(CXX_FOR_BUILD)
AC_SUBST(INPATH_FOR_BUILD)
AC_SUBST(OUTPATH_FOR_BUILD)
AC_SUBST(MACOSX_DEPLOYMENT_TARGET_FOR_BUILD)
AC_SUBST([PYTHON_FOR_BUILD])
AC_SUBST(OUTDIR_FOR_BUILD)
AC_SUBST(WORKDIR_FOR_BUILD)
......@@ -6728,6 +6731,14 @@ no)
;;
esac
dnl Cross-build of python requires python that is runnable on the build
dnl platform, because it is used in the build process
if test "$cross_compiling" = yes; then
if test "$DISABLE_PYTHON" = no -a "$SYSTEM_PYTHON" = no -a "$DISABLE_PYTHON_FOR_BUILD" = yes; then
AC_MSG_ERROR([Cross-build of python requires python that is runnable on the build platform. You must not use --disable-python for the 'build' config.])
fi
fi
AC_SUBST(SYSTEM_PYTHON)
AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_LIBS)
......
--- misc/build/Python-2.6.1/Modules/Setup.dist (revision 74955)
+++ misc/build/Python-2.6.1/Modules/Setup.dist (working copy)
@@ -413,9 +413,9 @@
# and the subdirectory of PORT where you built it.
DB=$(prefix)
DBLIBVER=4.8
-DBINC=$(DB)/include
-DBLIB=$(DB)/lib
-_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
+DBINC=$(OUTDIR)/inc/berkeleydb
+DBLIB=$(OUTDIR)/lib
+_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb47
# Historical Berkeley DB 1.85
#
This diff is collapsed.
Index: setup.py
===================================================================
--- misc/build/Python-2.6.1/setup.py (revision 74955)
+++ misc/build/Python-2.6.1/setup.py (working copy)
@@ -695,7 +695,7 @@
# a release. Most open source OSes come with one or more
# versions of BerkeleyDB already installed.
- max_db_ver = (4, 7)
+ max_db_ver = (4, 8)
min_db_ver = (3, 3)
db_setup_debug = False # verbose debug prints from this script?
Index: Modules/_bsddb.c
===================================================================
--- misc/build/Python-2.6.1/Modules/_bsddb.c (revision 74955)
+++ misc/build/Python-2.6.1/Modules/_bsddb.c (working copy)
@@ -215,7 +215,11 @@
#define DB_BUFFER_SMALL ENOMEM
#endif
+#if (DBVER < 48)
+#define DB_GID_SIZE DB_XIDDATASIZE
+#endif
+
/* --------------------------------------------------------------------- */
/* Structure definitions */
@@ -4501,7 +4505,11 @@
DBTxnObject *txn;
#define PREPLIST_LEN 16
DB_PREPLIST preplist[PREPLIST_LEN];
+#if (DBVER < 48)
long retp;
+#else
+ u_int32_t retp;
+#endif
CHECK_ENV_NOT_CLOSED(self);
@@ -4522,7 +4530,7 @@
flags=DB_NEXT; /* Prepare for next loop pass */
for (i=0; i<retp; i++) {
gid=PyBytes_FromStringAndSize((char *)(preplist[i].gid),
- DB_XIDDATASIZE);
+ DB_GID_SIZE);
if (!gid) {
Py_DECREF(list);
return NULL;
@@ -5047,6 +5055,7 @@
}
+#if (DBVER < 48)
static PyObject*
DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
{
@@ -5068,6 +5077,7 @@
RETURN_IF_ERR();
RETURN_NONE();
}
+#endif
static PyObject*
DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
@@ -5947,9 +5957,9 @@
if (!PyArg_ParseTuple(args, "s#:prepare", &gid, &gid_size))
return NULL;
- if (gid_size != DB_XIDDATASIZE) {
+ if (gid_size != DB_GID_SIZE) {
PyErr_SetString(PyExc_TypeError,
- "gid must be DB_XIDDATASIZE bytes long");
+ "gid must be DB_GID_SIZE bytes long");
return NULL;
}
@@ -6539,8 +6549,10 @@
#endif
{"set_get_returns_none",(PyCFunction)DBEnv_set_get_returns_none, METH_VARARGS},
{"txn_recover", (PyCFunction)DBEnv_txn_recover, METH_NOARGS},
+#if (DBVER < 48)
{"set_rpc_server", (PyCFunction)DBEnv_set_rpc_server,
METH_VARARGS||METH_KEYWORDS},
+#endif
{"set_verbose", (PyCFunction)DBEnv_set_verbose, METH_VARARGS},
#if (DBVER >= 42)
{"get_verbose", (PyCFunction)DBEnv_get_verbose, METH_VARARGS},
@@ -7089,6 +7101,7 @@
ADD_INT(d, DB_MAX_PAGES);
ADD_INT(d, DB_MAX_RECORDS);
+#if (DBVER < 48)
#if (DBVER >= 42)
ADD_INT(d, DB_RPCCLIENT);
#else
@@ -7096,7 +7109,11 @@
/* allow apps to be written using DB_RPCCLIENT on older Berkeley DB */
_addIntToDict(d, "DB_RPCCLIENT", DB_CLIENT);
#endif
+#endif
+
+#if (DBVER < 48)
ADD_INT(d, DB_XA_CREATE);
+#endif
ADD_INT(d, DB_CREATE);
ADD_INT(d, DB_NOMMAP);
@@ -7113,7 +7130,13 @@
ADD_INT(d, DB_INIT_TXN);
ADD_INT(d, DB_JOINENV);
+#if (DBVER >= 48)
+ ADD_INT(d, DB_GID_SIZE);
+#else
ADD_INT(d, DB_XIDDATASIZE);
+ /* Allow new code to work in old BDB releases */
+ _addIntToDict(d, "DB_GID_SIZE", DB_XIDDATASIZE);
+#endif
ADD_INT(d, DB_RECOVER);
ADD_INT(d, DB_RECOVER_FATAL);
--- misc/build/Python-2.6.1/Lib/bsddb/test/test_distributed_transactions.py~ 2008-08-31 16:00:51.000000000 +0200
+++ misc/build/Python-2.6.1/Lib/bsddb/test/test_distributed_transactions.py 2010-03-14 21:36:19.762842468 +0100
@@ -35,7 +35,7 @@
db.DB_INIT_TXN | db.DB_INIT_LOG | db.DB_INIT_MPOOL |
db.DB_INIT_LOCK, 0666)
self.db = db.DB(self.dbenv)
- self.db.set_re_len(db.DB_XIDDATASIZE)
+ self.db.set_re_len(db.DB_GID_SIZE)
if must_open_db :
if db.version() > (4,1) :
txn=self.dbenv.txn_begin()
@@ -76,7 +76,7 @@
# let them be garbage collected.
for i in xrange(self.num_txns) :
txn = self.dbenv.txn_begin()
- gid = "%%%dd" %db.DB_XIDDATASIZE
+ gid = "%%%dd" %db.DB_GID_SIZE
gid = adapt(gid %i)
self.db.put(i, gid, txn=txn, flags=db.DB_APPEND)
txns.add(gid)
--- misc/build/Python-2.6.1/Lib/bsddb/test/test_basics.py~ 2009-07-02 17:37:21.000000000 +0200
+++ misc/build/Python-2.6.1/Lib/bsddb/test/test_basics.py 2010-03-14 21:33:00.077842066 +0100
@@ -1032,11 +1032,12 @@
# # See http://bugs.python.org/issue3307
# self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535)
- def test02_DBEnv_dealloc(self):
- # http://bugs.python.org/issue3885
- import gc
- self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
- gc.collect()
+ if db.version() < (4, 8) :
+ def test02_DBEnv_dealloc(self):
+ # http://bugs.python.org/issue3885
+ import gc
+ self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
+ gc.collect()
#----------------------------------------------------------------------
This diff is collapsed.
This diff is collapsed.
......@@ -122,16 +122,40 @@ BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) && $(GNUMAKE) install DE
# WINDOWS
# ----------------------------------
.IF "$(COM)"=="GCC"
PATCH_FILES=Python-$(PYVERSION)-mingw.patch
PATCH_FILES= \
Python-2.6.1-svn-1.7.patch \
Python-2.6.2-bdb48.patch \
Python-2.6.2-cross.patch \
Python-2.6.2-cross.fix-configure.patch \
.IF "$(SYSTEM_DB)" != "YES"
PATCH_FILES += \
Python-2.6.1-cross.berkeleydb.patch \
.ENDIF
BUILD_DIR=
MYCWD=$(shell cygpath -m $(shell @pwd))/$(INPATH)/misc/build
python_CFLAGS=-mno-cygwin -mthreads
python_LDFLAGS=-mno-cygwin -mthreads
MYCWD=$(shell @pwd)/$(INPATH)/misc/build
.IF "$(PYTHON_FOR_BUILD)" == ""
PYTHON_FOR_BUILD = $(OUTDIR_FOR_BUILD)/bin/python$(PYMAJOR).$(PYMINOR)
.ENDIF
.IF "$(MINGW_SHARED_GCCLIB)"=="YES"
python_LDFLAGS+=-shared-libgcc
python_LDFLAGS=-shared-libgcc
.ENDIF
python_LDFLAGS+=-shared-libgcc -Wl,--enable-runtime-pseudo-reloc-v2
CONFIGURE_ACTION=./configure --prefix=$(MYCWD)/$(my_prefix) --enable-shared CC="$(CC:s/guw.exe //)" CXX="$(CXX:s/guw.exe //)" MACHDEP=MINGW32 LN="cp -p" CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
python_LDFLAGS=-shared-libgcc -Wl,--enable-runtime-pseudo-reloc-v2 -Wl,--export-all-symbols
CONFIGURE_ACTION=\
./configure \
--build="$(BUILD_PLATFORM)" \
--host="$(HOST_PLATFORM)" \
--prefix=$(MYCWD)/$(my_prefix) \
--enable-shared \
--with-threads \
LDFLAGS="$(python_LDFLAGS)" \
CC_FOR_BUILD="$(CC_FOR_BUILD)" \
PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)" \
ac_cv_printf_zd_format=no \
BUILD_ACTION=$(ENV_BUILD) make && make install
.ELSE
......
py python : solenv OPENSSL:openssl NULL
py python : BERKELEYDB:berkeleydb solenv OPENSSL:openssl NULL
py python nmake - w,vc7 py_mkout NULL
py python nmake - u py_mkout NULL
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment