xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] autoconf: fix python-dev detection on old python versions
@ 2012-04-02 10:27 Roger Pau Monne
  2012-04-03  4:33 ` KUWAMURA Shin'ya
  0 siblings, 1 reply; 4+ messages in thread
From: Roger Pau Monne @ 2012-04-02 10:27 UTC (permalink / raw)
  To: xen-devel
  Cc: Roger Pau Monne, Zhang, Yang Z, KUWAMURA Shin'ya,
	Ian Campbell

Replaced the use of python-config (that is only present in Python >= 2.5.x)
with the distutils python module.

Please run ./autogen.sh after applying the patch.

Again, this has only been tested on OS X Python 2.7.

Changes since v2:

 * Added SYSLIBS to library test.

Changes since v1:

 * Added Python LDFLAGS to library test.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Cc: Zhang, Yang Z <yang.z.zhang@intel.com>
Cc: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
---
 tools/m4/python_devel.m4 |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/tools/m4/python_devel.m4 b/tools/m4/python_devel.m4
index 3bcca7b..8bfcd0c 100644
--- a/tools/m4/python_devel.m4
+++ b/tools/m4/python_devel.m4
@@ -1,27 +1,27 @@
 AC_DEFUN([AX_CHECK_PYTHON_DEVEL], [
+ac_python_version=`$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("VERSION")'`
 ac_previous_cppflags=$CPPFLAGS
-CPPFLAGS="$CFLAGS `$PYTHON-config --includes`"
+CPPFLAGS="$CFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print "-I" + distutils.sysconfig.get_config_var("INCLUDEPY")'`"
+CPPFLAGS="$CPPFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("CFLAGS")'`"
 ac_previous_ldflags=$LDFLAGS
-for flag in `$PYTHON-config --ldflags`
-do
-    case $flag in
-    -L*)
-        LDFLAGS="$LDLFAGS $flag"
-        ;;
-    -lpython*)
-        python_lib=`echo $flag | sed 's/^-l//'`
-        ;;
-    -l*)
-        # Ignore other libraries, we are only interested in testing python-dev
-        ;;
-    *)
-        AC_MSG_WARN([Strange ldflag found in $PYTHON-config output: $flag])
-        ;;
-    esac
-done
+LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("LIBS")'`"
+LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("SYSLIBS")'`"
+LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print "-L" + distutils.sysconfig.get_python_lib(plat_specific=1,\
+    standard_lib=1) + "/config"'`"
+LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("LINKFORSHARED")'`"
+LDFLAGS="$LDFLAGS `$PYTHON -c 'import distutils.sysconfig; \
+    print distutils.sysconfig.get_config_var("LDFLAGS")'`"
+
 AC_CHECK_HEADER([Python.h], [],
     [AC_MSG_ERROR([Unable to find Python development headers])],)
-AC_CHECK_LIB($python_lib, PyArg_ParseTuple, [],
+AC_CHECK_LIB(python$ac_python_version, PyArg_ParseTuple, [],
     [AC_MSG_ERROR([Unable to find a suitable python development library])])
 CPPFLAGS=$ac_previous_cppflags
 LDLFAGS=$ac_previous_ldflags
-- 
1.7.7.5 (Apple Git-26)

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v3] autoconf: fix python-dev detection on old python versions
  2012-04-02 10:27 [PATCH v3] autoconf: fix python-dev detection on old python versions Roger Pau Monne
@ 2012-04-03  4:33 ` KUWAMURA Shin'ya
  2012-04-03 13:39   ` [PATCH v3] autoconf: fix python-dev detection on old python versions [and 1 more messages] Ian Jackson
  0 siblings, 1 reply; 4+ messages in thread
From: KUWAMURA Shin'ya @ 2012-04-03  4:33 UTC (permalink / raw)
  To: roger.pau; +Cc: yang.z.zhang, ian.campbell, xen-devel

Hi,

>>>>> On Mon,  2 Apr 2012 11:27:46 +0100
>>>>> roger.pau@entel.upc.edu(Roger Pau Monne)  said:
> 
> Replaced the use of python-config (that is only present in Python >= 2.5.x)
> with the distutils python module.
> 
> Please run ./autogen.sh after applying the patch.
> Again, this has only been tested on OS X Python 2.7.
> Changes since v2:
>  * Added SYSLIBS to library test.
> Changes since v1:
>  * Added Python LDFLAGS to library test.

This patch worked on RHEL4U2(Python 2.3), CentOS5.7(Python 2.4) and
Fedora 16(Python 2.7).

Best regards,
-- 
  KUWAMURA Shin'ya

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3] autoconf: fix python-dev detection on old python versions [and 1 more messages]
  2012-04-03  4:33 ` KUWAMURA Shin'ya
@ 2012-04-03 13:39   ` Ian Jackson
  2012-04-07 14:07     ` Olaf Hering
  0 siblings, 1 reply; 4+ messages in thread
From: Ian Jackson @ 2012-04-03 13:39 UTC (permalink / raw)
  To: Roger Pau Monne, KUWAMURA Shin'ya
  Cc: yang.z.zhang, ian.campbell, xen-devel

Roger Pau Monne writes ("[Xen-devel] [PATCH v3] autoconf: fix python-dev detection on old python versions"):
> Replaced the use of python-config (that is only present in Python >= 2.5.x)
> with the distutils python module.

Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>

Ian.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3] autoconf: fix python-dev detection on old python versions [and 1 more messages]
  2012-04-03 13:39   ` [PATCH v3] autoconf: fix python-dev detection on old python versions [and 1 more messages] Ian Jackson
@ 2012-04-07 14:07     ` Olaf Hering
  0 siblings, 0 replies; 4+ messages in thread
From: Olaf Hering @ 2012-04-07 14:07 UTC (permalink / raw)
  To: Roger Pau Monne
  Cc: yang.z.zhang, KUWAMURA Shin'ya, Ian Jackson, ian.campbell,
	xen-devel

On Tue, Apr 03, Ian Jackson wrote:

> Roger Pau Monne writes ("[Xen-devel] [PATCH v3] autoconf: fix python-dev detection on old python versions"):
> > Replaced the use of python-config (that is only present in Python >= 2.5.x)
> > with the distutils python module.
> 
> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>

I think this is the cause for a regression between changeset 25138 and
25161 in openSuSE 11.4, 12.1 and upcoming 12.2. SLES11 still builds
fine:

...
configure:6205: checking for Python.h
configure:6205: result: yes
configure:6214: checking for PyArg_ParseTuple in -lpython2.7
configure:6239: gcc -o conftest  -g -O2   -g -O2  -I/usr/include/python2.7 -fno-strict-aliasing -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g    -lpthread -ldl  -lutil -lm -L/usr/lib64/python2.7/config -Xlinker -export-dynamic  conftest.c -lpython2.7   >&5
/usr/lib64/python2.7/config/libpython2.7.a(longobject.o): In function `PyLong_FromString':
/home/abuild/rpmbuild/BUILD/Python-2.7.2/Objects/longobject.c:1851: undefined reference to `log'
/usr/lib64/python2.7/config/libpython2.7.a(signalmodule.o): In function `timeval_from_double':
/home/abuild/rpmbuild/BUILD/Python-2.7.2/./Modules/signalmodule.c:112: undefined reference to `floor'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/./Modules/signalmodule.c:113: undefined reference to `fmod'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/./Modules/signalmodule.c:112: undefined reference to `floor'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/./Modules/signalmodule.c:113: undefined reference to `fmod'
/usr/lib64/python2.7/config/libpython2.7.a(complexobject.o): In function `_Py_c_pow':
/home/abuild/rpmbuild/BUILD/Python-2.7.2/Objects/complexobject.c:139: undefined reference to `hypot'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/Objects/complexobject.c:140: undefined reference to `pow'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/Objects/complexobject.c:141: undefined reference to `atan2'
/home/abuild/rpmbuild/BUILD/Python-2.7.2/Objects/complexobject.c:145: undefined reference to `sincos'
...


I havent followed the discussion about the python detection. My
immediate reaction would be to use python-config when available.
This is what I get in the build chroot:

 python-config --cflags
 -I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing
 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector
 -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG
 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector
 -funwind-tables -fasynchronous-unwind-tables -g

 python-config --ldflags
 -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic

 python-config --libs
 -lpthread -ldl -lutil -lm -lpython2.7

 python-config --includes
 -I/usr/include/python2.7 -I/usr/include/python2.7


Olaf

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-04-07 14:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-02 10:27 [PATCH v3] autoconf: fix python-dev detection on old python versions Roger Pau Monne
2012-04-03  4:33 ` KUWAMURA Shin'ya
2012-04-03 13:39   ` [PATCH v3] autoconf: fix python-dev detection on old python versions [and 1 more messages] Ian Jackson
2012-04-07 14:07     ` Olaf Hering

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).