On Thu, Jun 19, 2014 at 4:18 AM, Martin Jansa <[email protected]> wrote:
> The original patch says this about MACHINE variables:
>
>     Use MACHINE for sysroot when not building for build host
>
>     Python's machinery replaces directories in sysroot path to match OE's
>     staging area sysroots. Earlier we use to have HOST_SYS represent sysroot
>     always but now we use MACHINE to represent target sysroots but HOST_SYS
>     to represent host sysroot. This patch caters to that difference
>
> But I think we need to find some different solution, because right now the 
> only
> user of distutils3 bbclass python3-distribute becames effectivelly 
> MACHINE_ARCH
> because of this. Detected with sstate-diff-machines.sh script:
>
>  == Comparing signatures for python3-distribute.do_populate_sysroot.sigdata 
> between qemux86 and qemux86copy ==
>   Hash for dependent task python3-distribute_0.6.32.bb.do_install changed 
> from ef2f64ea6aecf1f9c2c6a0f201c52f67 to 7afd17fd366b28cf4a0353c7dd5e1c5b
>
>   $ bitbake-diffsigs 
> sstate-diff/1403174194/qemux86*/i586*/python3-distribute*/*do_install*
>     basehash changed from 5311d29c25ff324645de9c17cdefe083 to 
> 2f079b81b13427faddeb040e7a115965
>     Variable MACHINE value changed from 'qemux86copy' to 'qemux86'
>     Hash for dependent task python3-distribute_0.6.32.bb.do_compile changed 
> from 4fcb29eb2a0df7bef2f9806a0d9cdd92 to e7df3cdd7b82733d69c87f1822b7177b
>
>   $ bitbake-diffsigs 
> sstate-diff/1403174194/qemux86*/i586*/python3-distribute*/*do_compile*
>     basehash changed from 870a9e01c2c4eb73dd57451eeb2a7f0c to 
> c061ae11d7f16d74d49f667243a21be0
>     Variable MACHINE value changed from 'qemux86copy' to 'qemux86'
>
> Signed-off-by: Martin Jansa <[email protected]>


BUILD_SYS is needed in python machinery to construct proper sys root
especially with python3 versions the cross build infra in python is
different. I think this patch would fail to build python3, either we
have to patch it in such a way that whatever sys root OE constructs is
passed directly and used and thereby remove depending on referring to
MACHINE but that would need a bigger patch for python which I was not
willing to carry. if there is another check that can deduce difference
of being compiled native or for target then we can use that check
instead of comparing BUILD_SYS to MACHINE

> ---
>  meta/classes/distutils3.bbclass | 28 ++++------------------------
>  1 file changed, 4 insertions(+), 24 deletions(-)
>
> diff --git a/meta/classes/distutils3.bbclass b/meta/classes/distutils3.bbclass
> index bbd645c..8cf29d5 100644
> --- a/meta/classes/distutils3.bbclass
> +++ b/meta/classes/distutils3.bbclass
> @@ -9,14 +9,9 @@ DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
>      --install-data=${D}/${datadir}"
>
>  distutils3_do_compile() {
> -        if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
> -                SYS=${MACHINE}
> -        else
> -                SYS=${HOST_SYS}
> -        fi
>          STAGING_INCDIR=${STAGING_INCDIR} \
>          STAGING_LIBDIR=${STAGING_LIBDIR} \
> -        BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
> +        BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
>          ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
>          build ${DISTUTILS_BUILD_ARGS} || \
>          bbfatal "${PYTHON_PN} setup.py build_ext execution failed."
> @@ -24,42 +19,27 @@ distutils3_do_compile() {
>
>  distutils3_stage_headers() {
>          install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
> -        if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
> -                SYS=${MACHINE}
> -        else
> -                SYS=${HOST_SYS}
> -        fi
> -        BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
> +        BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
>          ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py 
> install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
>          bbfatal "${PYTHON_PN} setup.py install_headers execution failed."
>  }
>
>  distutils3_stage_all() {
> -        if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
> -                SYS=${MACHINE}
> -        else
> -                SYS=${HOST_SYS}
> -        fi
>          STAGING_INCDIR=${STAGING_INCDIR} \
>          STAGING_LIBDIR=${STAGING_LIBDIR} \
>          install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
>          PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
> -        BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
> +        BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
>          ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py 
> install ${DISTUTILS_STAGE_ALL_ARGS} || \
>          bbfatal "${PYTHON_PN} setup.py install (stage) execution failed."
>  }
>
>  distutils3_do_install() {
>          install -d ${D}${PYTHON_SITEPACKAGES_DIR}
> -        if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
> -                SYS=${MACHINE}
> -        else
> -                SYS=${HOST_SYS}
> -        fi
>          STAGING_INCDIR=${STAGING_INCDIR} \
>          STAGING_LIBDIR=${STAGING_LIBDIR} \
>          PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
> -        BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
> +        BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
>          ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py 
> install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} 
> ${DISTUTILS_INSTALL_ARGS} || \
>          bbfatal "${PYTHON_PN} setup.py install execution failed."
>
> --
> 2.0.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> [email protected]
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to