All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [DO-NOT-MERGE][RFC][PATCH] DO-NOT-MERGE: distutils3.bbclass: Don't use MACHINE variable
Date: Wed, 23 Jul 2014 21:03:26 +0200	[thread overview]
Message-ID: <20140723190326.GA2492@jama> (raw)
In-Reply-To: <CAMKF1spKr_JzstojPa_ALCJKwBF=cDVh2bZmkucUO6hfB0ipsA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6214 bytes --]

On Wed, Jul 23, 2014 at 11:04:18AM -0700, Khem Raj wrote:
> On Thu, Jun 19, 2014 at 4:18 AM, Martin Jansa <martin.jansa@gmail.com> 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 <Martin.Jansa@gmail.com>
> 
> 
> 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

FWIW: I've this patch in my world builds and I haven't seen any issue
caused by it (python3 builds fine there).

> > ---
> >  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
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

  reply	other threads:[~2014-07-23 19:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-19 11:18 [DO-NOT-MERGE][RFC][PATCH] DO-NOT-MERGE: distutils3.bbclass: Don't use MACHINE variable Martin Jansa
2014-07-22 11:20 ` Martin Jansa
2014-07-23 18:04 ` Khem Raj
2014-07-23 19:03   ` Martin Jansa [this message]
2014-07-23 19:19     ` Khem Raj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140723190326.GA2492@jama \
    --to=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.