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