summaryrefslogtreecommitdiffstats
path: root/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff')
-rw-r--r--patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff380
1 files changed, 380 insertions, 0 deletions
diff --git a/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff b/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff
new file mode 100644
index 000000000..5f92e420d
--- /dev/null
+++ b/patches/mod_python-3.3.1/mod_python-3.3.1-python-headers.diff
@@ -0,0 +1,380 @@
+From: Robert Schwebel <r.schwebel@pengutronix.de>
+Subject: [patch] fix python headers
+
+When cross compiling mod_python for a 32 bit system while being on a 64
+bit build host, we get the following error:
+
+some_path/include/python2.4/pyport.h:612:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
+
+The reason is that in a cross scenario we need a python build for the
+"--build" machine and one for the "--host" machine; currently the python
+headers have been taken from the "--build" path, which brings 64 bit
+headers into a 32 bit build.
+
+The patch below was taken from the OpenEmbedded repository and adapted
+to mod_python.
+
+Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
+
+---
+ autogen.sh | 5
+ configure.in | 8 -
+ m4/python.m4 | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/Makefile.in | 2
+ 4 files changed, 317 insertions(+), 5 deletions(-)
+
+Index: mod_python-3.3.1/m4/python.m4
+===================================================================
+--- /dev/null
++++ mod_python-3.3.1/m4/python.m4
+@@ -0,0 +1,307 @@
++dnl
++dnl Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
++dnl Free Software Foundation, Inc.
++dnl
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++dnl
++
++dnl
++dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
++dnl Check if a module containing a given symbol is visible to python.
++dnl
++dnl this one is commonly used with AM_PATH_PYTHONDIR ...
++dnl
++
++AC_DEFUN([AM_CHECK_PYMOD],[
++
++ AC_REQUIRE([AM_PATH_PYTHON])
++ py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
++
++ AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
++ AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
++ ifelse([$2],[], [prog="
++ import sys
++ try:
++ import $1
++ except ImportError:
++ sys.exit(1)
++ except:
++ sys.exit(0)
++ sys.exit(0)"], [prog="
++ import $1
++ $1.$2"])
++ if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
++ then
++ eval "py_cv_mod_$py_mod_var=yes"
++ else
++ eval "py_cv_mod_$py_mod_var=no"
++ fi
++ ])
++ py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
++ if test "x$py_val" != xno; then
++ AC_MSG_RESULT(yes)
++ ifelse([$3], [],, [$3
++ ])dnl
++ else
++ AC_MSG_RESULT(no)
++ ifelse([$4], [],, [$4
++ ])dnl
++ fi
++
++])
++
++
++dnl
++dnl Check the ability to create python extensions
++dnl
++dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], dnl [ACTION-IF-NOT-POSSIBLE])
++dnl
++dnl This function does also define PYTHON_INCLUDES
++dnl
++
++AC_DEFUN([AM_CHECK_PYTHON_HEADERS],[
++
++ AC_REQUIRE([AM_PATH_PYTHON])
++
++ AC_MSG_CHECKING(for headers required to compile python extensions)
++
++ dnl deduce PYTHON_INCLUDES
++ AC_ARG_WITH(python-includes,
++ AS_HELP_STRING([--with-python-includes=DIR], [DIR path to Python includes]),
++ py_exec_prefix=$withval
++ )
++ if test x$py_exec_prefix != x; then
++ PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
++ else
++ py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`
++ py_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`
++ if test -x "$PYTHON-config"; then
++ PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null`
++ else
++ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
++ if test "$py_prefix" != "$py_exec_prefix"; then
++ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
++ fi
++ fi
++ fi
++
++ AC_SUBST(PYTHON_INCLUDES)
++
++ dnl check if the headers exist:
++ save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
++
++ AC_TRY_CPP([#include <Python.h>],dnl
++ [AC_MSG_RESULT(found)
++ $1],dnl
++ [AC_MSG_RESULT(not found)
++ $2])
++ CPPFLAGS="$save_CPPFLAGS"
++])
++
++
++dnl
++dnl JD_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
++dnl
++dnl Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
++dnl Run ACTION-IF-FALSE otherwise.
++dnl
++dnl This test uses sys.hexversion instead of the string equivalent.
++dnl This is similar to AM_PYTHON_CHECK_VERSION, but without python 1.5.x support
++dnl and with python 3.0 support.
++dnl
++
++AC_DEFUN([JD_PYTHON_CHECK_VERSION],[
++
++ prog="import sys
++ # split strings by '.' and convert to numeric. Append some zeros
++ # because we need at least 4 digits for the hex conversion.
++ # map returns an iterator in Python 3.0 and a list in 2.x
++ minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
++ minverhex = 0
++ # xrange is not present in Python 3.0 and range returns an iterator
++ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
++ sys.exit(sys.hexversion < minverhex)"
++
++ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])
++
++])
++
++
++dnl
++dnl JD_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
++dnl
++dnl Adds support for distributing Python modules and packages. To
++dnl install modules, copy them to $(pythondir), using the python_PYTHON
++dnl automake variable. To install a package with the same name as the
++dnl automake package, install to $(pkgpythondir), or use the
++dnl pkgpython_PYTHON automake variable.
++dnl
++dnl The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
++dnl locations to install python extension modules (shared libraries).
++dnl Another macro is required to find the appropriate flags to compile
++dnl extension modules.
++dnl
++dnl If your package is configured with a different prefix to python,
++dnl users will have to add the install directory to the PYTHONPATH
++dnl environment variable, or create a .pth file (see the python
++dnl documentation for details).
++dnl
++dnl If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
++dnl cause an error if the version of python installed on the system
++dnl doesn't meet the requirement. MINIMUM-VERSION should consist of
++dnl numbers and dots only.
++dnl
++
++AC_DEFUN([JD_PATH_PYTHON],
++ [
++ dnl Find a Python interpreter. Python versions prior to 2.0 are not
++ dnl supported
++ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
++ [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
++python2.1 python2.0])
++
++ m4_if([$1],[],[
++ dnl No version check is needed.
++ # Find any Python interpreter.
++ if test -z "$PYTHON"; then
++ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
++ fi
++ am_display_PYTHON=python
++ ], [
++ dnl A version check is needed.
++ if test -n "$PYTHON"; then
++ # If the user set $PYTHON, use it and don't search something else.
++ AC_MSG_CHECKING([whether $PYTHON version >= $1])
++ JD_PYTHON_CHECK_VERSION([$PYTHON], [$1],
++ [AC_MSG_RESULT(yes)],
++ [AC_MSG_ERROR(too old)])
++ am_display_PYTHON=$PYTHON
++ else
++ # Otherwise, try each interpreter until we find one that satisfies
++ # VERSION.
++ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
++ [am_cv_pathless_PYTHON],[
++ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
++ test "$am_cv_pathless_PYTHON" = none && break
++ JD_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
++ done])
++ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
++ if test "$am_cv_pathless_PYTHON" = none; then
++ PYTHON=:
++ else
++ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
++ fi
++ am_display_PYTHON=$am_cv_pathless_PYTHON
++ fi
++ ])
++
++ if test "$PYTHON" = :; then
++ dnl Run any user-specified action, or abort.
++ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
++ else
++
++ dnl Query Python for its version number. Getting [:3] seems to be
++ dnl the best way to do this; it's what "site.py" does in the standard
++ dnl library.
++
++ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
++ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
++ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
++
++ dnl Use the values of $prefix and $exec_prefix for the corresponding
++ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
++ dnl distinct variables so they can be overridden if need be. However,
++ dnl general consensus is that you shouldn't need this ability.
++
++ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
++ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
++
++ dnl At times (like when building shared libraries) you may want
++ dnl to know which OS platform Python thinks this is.
++
++ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
++ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
++ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
++
++
++ dnl Set up 4 directories:
++
++ dnl pythondir -- where to install python scripts. This is the
++ dnl site-packages directory, not the python standard library
++ dnl directory like in previous automake betas. This behavior
++ dnl is more consistent with lispdir.m4 for example.
++ dnl Query distutils for this directory. distutils does not exist in
++ dnl Python 1.5, so we fall back to the hardcoded directory if it
++ dnl doesn't work.
++ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
++ [am_cv_python_pythondir],
++ [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
++ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
++ AC_SUBST([pythondir], [$am_cv_python_pythondir])
++
++ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
++ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
++ dnl more consistent with the rest of automake.
++
++ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
++
++ dnl pyexecdir -- directory for installing python extension modules
++ dnl (shared libraries)
++ dnl Query distutils for this directory. distutils does not exist in
++ dnl Python 1.5, so we fall back to the hardcoded directory if it
++ dnl doesn't work.
++ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
++ [am_cv_python_pyexecdir],
++ [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
++ echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
++ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
++
++ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
++
++ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
++
++ dnl Run any user-specified action.
++ $2
++ fi
++
++])
++
++
++dnl
++dnl JD_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
++dnl
++dnl A macro to check for ability to create python extensions.
++dnl This function also defines PYTHON_INCLUDES
++dnl
++
++AC_DEFUN([JD_CHECK_PYTHON_HEADERS],[
++
++ AC_REQUIRE([AM_PATH_PYTHON])
++ AC_MSG_CHECKING(for headers required to compile python extensions)
++
++ dnl deduce PYTHON_INCLUDES
++ py_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`
++ py_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`
++
++ if test -x "$PYTHON-config"; then
++ PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null`
++ else
++ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
++ if test "$py_prefix" != "$py_exec_prefix"; then
++ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
++ fi
++ fi
++
++ AC_SUBST(PYTHON_INCLUDES)
++
++ dnl check if the headers exist:
++ save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
++
++ AC_TRY_CPP([#include <Python.h>],[AC_MSG_RESULT(found) $1],[AC_MSG_RESULT(not found) $2])
++ CPPFLAGS="$save_CPPFLAGS"
++])
++
+Index: mod_python-3.3.1/configure.in
+===================================================================
+--- mod_python-3.3.1.orig/configure.in
++++ mod_python-3.3.1/configure.in
+@@ -275,11 +275,11 @@ LDFLAGS="${LDFLAGS} ${PyLFS} ${PyLDFLAGS
+ LDFLAGS="${LDFLAGS} ${PY_LDFLAGS}"
+ AC_MSG_RESULT($PY_LDFLAGS)
+
+-AC_MSG_CHECKING(where Python include files are)
++INCLUDES="${INCLUDES} ${AP_INCLUDES}"
+ AC_SUBST(INCLUDES)
+-PY_INCLUDES="-I${PyEXEC_INSTALLDIR}/include/python${PyVERSION}"
+-INCLUDES="${INCLUDES} ${AP_INCLUDES} ${PY_INCLUDES}"
+-AC_MSG_RESULT($PY_INCLUDES)
++
++# determine PYTHON_PATH
++AM_CHECK_PYTHON_HEADERS
+
+ # this for the test.py script
+ AC_SUBST(TEST_SERVER_ROOT)
+Index: mod_python-3.3.1/src/Makefile.in
+===================================================================
+--- mod_python-3.3.1.orig/src/Makefile.in
++++ mod_python-3.3.1/src/Makefile.in
+@@ -22,7 +22,7 @@ MKDEP=@MKDEP@
+
+ # requires flex 2.5.31 for reentrant support
+ LEX=@LEX@
+-INCLUDES=@INCLUDES@
++INCLUDES=@INCLUDES@ @PYTHON_INCLUDES@
+ LIBS=@LIBS@
+ LDFLAGS=@LDFLAGS@
+ OPT=
+Index: mod_python-3.3.1/autogen.sh
+===================================================================
+--- /dev/null
++++ mod_python-3.3.1/autogen.sh
+@@ -0,0 +1,5 @@
++#!/bin/sh
++
++aclocal -I `pwd`/m4
++autoconf
++