Bug 1932 - python recipe fails to build when multilib is enabled
Summary: python recipe fails to build when multilib is enabled
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.2 M3
Assignee: Edwin Zhai
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-01-25 14:41 UTC by Nitin Kamble
Modified: 2012-03-19 21:57 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nitin Kamble 2012-01-25 14:41:28 UTC
Local.conf enables multilib like this: 
MACHINE ??= "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib64 multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

Then bitbake python fails like this:

| /usr/bin/install -c -m 644 ./Lib/plat-linux2/DLFCN.py /usr/lib64/python2.7/plat-linux2
| /usr/bin/install -c -m 644 ./Lib/plat-linux2/IN.py /usr/lib64/python2.7/plat-linux2
| /usr/bin/install -c -m 644 ./Lib/plat-linux2/TYPES.py /usr/lib64/python2.7/plat-linux2
| /usr/bin/install -c ./Lib/plat-linux2/regen /usr/lib64/python2.7/plat-linux2
| /usr/bin/install -c -m 644 ./LICENSE /srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/LICENSE.txt
| PYTHONPATH=/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7  LD_LIBRARY_PATH=/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/Python-2.7.2:/srv/home/nitin/builds/build-multilib/tmp/sysroots/x86_64-linux/usr/bin/../lib/pseudo/lib:/srv/home/nitin/builds/build-multilib/tmp/sysroots/x86_64-linux/usr/bin/../lib/pseudo/lib64 \
| 	/srv/home/nitin/builds/build-multilib/tmp/sysroots/x86_64-linux/usr/bin/python -Wi -tt /srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/compileall.py \
| 	-d /usr/lib64/python2.7 -f \
| 	-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
| 	/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7
| Traceback (most recent call last):
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/site.py", line 569, in <module>
|     main()
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/site.py", line 551, in main
|     known_paths = addusersitepackages(known_paths)
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/site.py", line 278, in addusersitepackages
|     user_site = getusersitepackages()
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/site.py", line 253, in getusersitepackages
|     user_base = getuserbase() # this will also set USER_BASE
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/site.py", line 243, in getuserbase
|     USER_BASE = get_config_var('userbase')
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/sysconfig.py", line 520, in get_config_var
|     return get_config_vars().get(name)
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/sysconfig.py", line 419, in get_config_vars
|     _init_posix(_CONFIG_VARS)
|   File "/srv/home/nitin/builds/build-multilib/tmp/work/x86_64-poky-linux/python-2.7.2-r0.5/image/usr/lib64/python2.7/sysconfig.py", line 287, in _init_posix
|     raise IOError(msg)
| IOError: invalid Python installation: unable to open /usr/lib/python2.7/config/Makefile (No such file or directory)
| make: *** [libinstall] Error 1
| ERROR: oe_runmake failed
NOTE: package python-2.7.2-r0.5: task do_install: Failed
ERROR: Task 2 (/srv/home/nitin/prj/poky.git/meta/recipes-devtools/python/python_2.7.2.bb, do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 816 tasks of which 801 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /srv/home/nitin/prj/poky.git/meta/recipes-devtools/python/python_2.7.2.bb, do_install
Summary: There was 1 ERROR message shown, returning a non-zero exit code.


As Yu Ke has worked on the python multilib patch, Assigning this bug to him.
Comment 1 Nitin Kamble 2012-03-19 21:57:52 UTC
This is fixed by my commit 

author	Nitin A Kamble <nitin.a.kamble@intel.com>	2012-03-14 18:06:09 (GMT)
committer	Richard Purdie <richard.purdie@linuxfoundation.org>	2012-03-19 14:37:39 (GMT)
commit	acc1b66677a7326321ce076a4b0cf820b600b088 (patch) (side-by-side diff)

python: fix install when libdir is not "lib"
This commit fixes python's install issue of not finding the native pythong binray modules. (From OE-Core rev: bf52e32e09423056c8c78760db22ca7497ec357d) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>