Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 2/4] gdb-cross-canadian: use NATIVESDK paths as it happens to be here
Date: Sat, 25 Feb 2012 01:02:48 +0000	[thread overview]
Message-ID: <1330131768.13788.6.camel@ted> (raw)
In-Reply-To: <20120225000546.GO3769@jama.jama.net>

On Sat, 2012-02-25 at 01:05 +0100, Martin Jansa wrote:
> On Thu, Feb 23, 2012 at 10:27:53AM +0000, Richard Purdie wrote:
> > On Mon, 2012-02-13 at 16:40 +0100, Martin Jansa wrote:
> > > * seems like config/config in -L was also wrong
> > > 
> > > Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> > > ---
> > >  meta/recipes-devtools/gdb/gdb-cross-canadian.inc |   10 ++++++++--
> > >  1 files changed, 8 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
> > > index b5746ce..bac63b7 100644
> > > --- a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
> > > +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
> > > @@ -10,12 +10,18 @@ RDEPENDS += "python-nativesdk-core python-nativesdk-lang python-nativesdk-re \
> > >  
> > >  EXTRA_OECONF_append = "--with-python=${WORKDIR}/python"
> > >  
> > > +NATIVESDK_NAME = "oecore-${SDK_ARCH}-${SDK_ARCH}"
> > > +NATIVESDK_PATH = "/usr/local/${NATIVESDK_NAME}"
> > > +NATIVESDK_PATHNATIVE = "${NATIVESDK_PATH}/sysroots/${SDK_SYS}"
> > > +NATIVESDK_LIBDIR = "${NATIVESDK_PATHNATIVE}${libdir_nativesdk}"
> > > +NATIVESDK_INCLUDEDIR = "${NATIVESDK_PATHNATIVE}${includedir_nativesdk}"
> > > +
> > >  do_configure_prepend() {
> > >  cat > ${WORKDIR}/python << EOF
> > >  #! /bin/sh
> > >  case "\$2" in
> > > -        --includes) echo "-I${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}${exec_prefix}/include/python${PYTHON_BASEVERSION}/" ;;
> > > -        --ldflags) echo "-L${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}${libdir}/python${PYTHON_BASEVERSION}/config/config -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}" ;;
> > > +        --includes) echo "-I${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}${NATIVESDK_INCLUDEDIR}/python${PYTHON_BASEVERSION}/" ;;
> > > +        --ldflags) echo "-L${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}${NATIVESDK_LIBDIR}/python${PYTHON_BASEVERSION}/config -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}" ;;
> > >          --exec-prefix) echo "/usr" ;;
> > >          *) exit 1 ;;
> > >  esac
> > 
> > I made some experiments with "bitbake gdb-cross-canadian-x86-64 -e" and
> > it seems to me that:
> > 
> >        --includes) echo "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}/" ;;
> >        --ldflags) echo "-L${STAGING_LIBDIR}/../python${PYTHON_BASEVERSION}/config -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}" ;;
> > 
> > should work ok here?
> 
> No it's not the same.
> 
> With default oe-core settings it behaves like this:
> 
> python-nativesdk is staged in the same directory for all 3 MACHINEs I
> was using for test (qemuarm, qemux86, qemux86-64)
> 
> SDKMACHINE=i686:   SYSROOTS/i686-nativesdk-oesdk-linux/usr/local/oecore-i686-i686/sysroots/i686-oesdk-linux/
> SDKMACHINE=x86-64: SYSROOTS/x86_64-nativesdk-oesdk-linux/usr/local/oecore-x86_64-x86_64/sysroots/x86_64-oesdk-linux
> 
> while STAGING_INCDIR is different for each machine
> SDKMACHINE=i686:
>   STAGING_LIBDIR="SYSROOTS/i686-oesdk-linux-nativesdk/usr/local/oecore-i686-i586/sysroots/i686-oesdk-linux/usr/lib/i586-oe-linux"
>   STAGING_LIBDIR="SYSROOTS/i686-oesdk-linux-nativesdk/usr/local/oecore-i686-x86_64/sysroots/i686-oesdk-linux/usr/lib/x86_64-oe-linux"
>   STAGING_LIBDIR="SYSROOTS/i686-oesdk-linux-nativesdk/usr/local/oecore-i686-arm/sysroots/i686-oesdk-linux/usr/lib/armv5te-oe-linux-gnueabi"
> SDKMACHINE=x86-64:
>   STAGING_LIBDIR="SYSROOTS/x86_64-oesdk-linux-nativesdk/usr/local/oecore-x86_64-i586/sysroots/x86_64-oesdk-linux/usr/lib/i586-oe-linux"
>   STAGING_LIBDIR="SYSROOTS/x86_64-oesdk-linux-nativesdk/usr/local/oecore-x86_64-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/x86_64-oe-linux"
>   STAGING_LIBDIR="SYSROOTS/x86_64-oesdk-linux-nativesdk/usr/local/oecore-x86_64-arm/sysroots/x86_64-oesdk-linux/usr/lib/armv5te-oe-linux-gnueabi"
> 
> notice that not only SDK_NAME tripple is changing
> SDK_NAME = "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TARGET_ARCH}"
> so we keep it the same across all MACHINES with:
> NATIVESDK_SDK_NAME = "${SDK_NAME_PREFIX}-${SDK_ARCH}-${SDK_ARCH}"
> 
> but also toplevel SYSROOT is different
> i686-nativesdk-oesdk-linux
> i686-oesdk-linux-nativesdk
> and
> x86_64-nativesdk-oesdk-linux
> x86_64-oesdk-linux-nativesdk
> 
> So nativesdk staging is broken and python-nativesdk should be staged
> separately for each SDK_ARCH/TARGET_ARCH combination or we need those
> NATIVESDK_SDK_NAME variables for cross-canadian -> nativesdk deps.

All becomes clear now. 

I seem to remember strongly disagreeing with:

SDK_NAME = "oecore-${SDK_ARCH}-${TARGET_ARCH}"
SDKPATH = "/usr/local/${SDK_NAME}"

that is in bitbake.conf but probably wasn't able to articulate why at
the time. You'll note that poky.conf does:

SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${TARGET_ARCH}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"

so the SDKPATH is not dependent on TARGET_ARCH. It doesn't need to
depend on SDK_ARCH either although that is not the problematic part
here.

If you think about what is happening, bitbake will reuse the sstate
files for each nativesdk, they are meant to be equivalent for each
SDKMACHINE. If you hardcode TARGET_ARCH into the path, they are not.

So I'd say that SDKPATH containing SDK_NAME is clearly bogus and
TARGET_ARCH needs to be removed in somehow at the very least. Fix that
and your problems should go away. The patches you're sending don't fix
the root problem though.

Cheers,

Richard




  reply	other threads:[~2012-02-25  1:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-13 15:40 [PATCH 0/4] PR bumps for missing libz.la, resent gdb python support with fix Martin Jansa
2012-02-13 15:40 ` [PATCH 1/4] gdb-cross-canadian: build gdb with python support Martin Jansa
2012-02-13 15:40 ` [PATCH 2/4] gdb-cross-canadian: use NATIVESDK paths as it happens to be here Martin Jansa
2012-02-13 16:11   ` [PATCH] gdb-cross-canadian: bump PR Martin Jansa
2012-02-17 22:36   ` [PATCH 2/4] gdb-cross-canadian: use NATIVESDK paths as it happens to be here Saul Wold
2012-02-18 11:56     ` Martin Jansa
2012-02-18 14:01       ` Richard Purdie
2012-02-23  8:16         ` Martin Jansa
2012-02-23 10:27   ` Richard Purdie
2012-02-25  0:05     ` Martin Jansa
2012-02-25  1:02       ` Richard Purdie [this message]
2012-02-25 13:12         ` Martin Jansa
2012-02-25 15:42           ` Richard Purdie
2012-02-13 15:40 ` [PATCH 3/4] zlib: remove ldconfig call from install-libs Martin Jansa
2012-02-13 15:40 ` [PATCH 4/4] recipes: bump PR to rebuild .la files without libz.la Martin Jansa
2012-02-21 19:00   ` Steve Sakoman
2012-02-21 19:25   ` Steve Sakoman
2012-02-21 21:07     ` Khem Raj
2012-02-21 21:16       ` Steve Sakoman
2012-02-21 21:33         ` Phil Blundell
2012-02-21 21:39           ` Steve Sakoman
2012-02-21 21:45             ` Phil Blundell
2012-02-21 21:44         ` Paul Eggleton
2012-02-21 22:01           ` Steve Sakoman
2012-02-21 17:07 ` [PATCH 0/4] PR bumps for missing libz.la, resent gdb python support with fix Saul Wold

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=1330131768.13788.6.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox