[OE-core] Compiling Python in a path which contains $BUILD_SYS

Stefan Agner stefan at agner.ch
Fri Dec 11 22:08:29 UTC 2015


Hi,

When compiling Python in a path which contains $BUILD_SYS (typically
"x86_64-linux"), then Python fails to build with the following error:

| x86_64-angstromsdk-linux-gcc 
--sysroot=/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux
-L/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/lib
-Wl,-rpath-link,/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/lib
-Wl,-rpath,/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/lib
-Wl,-O1
-L/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/lib
-Wl,-rpath-link,/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/lib
-Wl,-rpath,/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/lib
-Wl,-O1 -L.
-L/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/sysroots/x86_64-nativesdk-angstromsdk-linux/usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/lib
-Xlinker -export-dynamic -o python \
| 		Modules/python.o \
| 		-L. -lpython2.7 -lpthread -ldl  -lpthread -lutil   -lm
| error: invalid Python installation: unable to open
/home/ags/localbin/toradex/bsp/linux/x86_64-angstromsdk-linux/bsp/oe-core/build/out-glibc/work/x86_64-nativesdk-angstromsdk-linux/nativesdk-python/2.7.3-r0.3/Python-2.7.3/pyconfig.h
(No such file or directory)
| make: *** [sharedmods] Error 1
| ERROR: oe_runmake failed
| WARNING:
/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/work/x86_64-nativesdk-angstromsdk-linux/nativesdk-python/2.7.3-r0.3/temp/run.do_compile.5641:1
exit 1 from
|   exit 1
| ERROR: Function failed: do_compile (log file is located at
/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/out-glibc/work/x86_64-nativesdk-angstromsdk-linux/nativesdk-python/2.7.3-r0.3/temp/log.do_compile.5641)


My builddir is in
/home/ags/localbin/toradex/bsp/linux/x86_64-linux/bsp/oe-core/build/

But Python suddenly searches in
/home/ags/localbin/toradex/bsp/linux/x86_64-angstromsdk-linux/bsp/oe-core/build/

I think the issue comes from the patch
12-distutils-prefix-is-inside-staging-area.patch, which replaces
BUILD_SYS with HOST_SYS in the whole absolute path, even outside of the
build directory... Is there a easy fix for this? As a workaround, making
sure that the user does not build in a directory which contains
$BUILD_SYS would already be helpful, e.g.
# Check if $BUILDDIR contains the string $BUILD_SYS
if [ "${BUILDDIR/${BUILD_SYS}//}" != "$BUILDDIR" ]; then
        bberror "Python can not be built in a directory which contains
the BUILD_SYS string."
fi

--
Stefan



More information about the Openembedded-core mailing list