New submission from Takashi Matsuzawa:

I have been debugging for a couple of days to now why my extension module build 
fails with my Yocto 2.0 cross-build environment.
(python version is 2.7, host is x86_64 and target is qemux86).

The symptom is that LD flags -L and -lpython27 are not being passed cross gcc 
and linker fails.
The direct cause of this is that lib/distutils/sysconfig.py not picking up 
Py_ENABLE_SHARED value (it should be 1 since I am linking against shared 
libpython2.7).

In lib/distutils/sysconfig.py:parse_config_h(), the code is reading the file 
pointer line by line, and only doing string match against #define and #under.
No other type of lines are meaningful to this code.

However, the pyconfig.h I have is like this:
(sysroots/qemux86/user/include/python2.7/pyconfig.h)

>>>>
/*
 * Copyright (C) 2005-2011 by Wind River Systems, Inc.
 *
....

#ifdef _MIPS_SIM
...
#else /* _MIPS_SIM is not defined */
#include <python2.7/pyconfig-32.h>
#endif
...
<<<<

So, parse_config_h() fails to get anything from there.
In particular, it fails to get the following in  pyconfig-32.h and I fail to 
build extension module using this configuration of python.

#define Py_ENABLE_SHARED 1

I have looked into the master branch, but the parse_config_h() code is the same 
as what I have on my PC.

I am not sure which of the below is true

1) pyconfig.h should be flat, no #ifdef's, so that parse_config_h() does its 
job sucessfully.
2) parse_config_h() should be flexible to allow ordinal header file syntax 
including #ifdef's and #includes (or pyconfig.h should be preprocessed before 
it is read by parse_config_h()).

----------
components: Cross-Build
messages: 278518
nosy: Alex.Willmer, tmatsuzawa
priority: normal
severity: normal
status: open
title: lib/distutils/sysconfig.py fails to pick up Py_ENABLE_SHARED value
type: compile error
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28421>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to