From: Martin Jansa <martin.jansa@gmail.com>
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 14:12:19 +0100 [thread overview]
Message-ID: <20120225131218.GP3769@jama.jama.net> (raw)
In-Reply-To: <1330131768.13788.6.camel@ted>
[-- Attachment #1: Type: text/plain, Size: 6880 bytes --]
On Sat, Feb 25, 2012 at 01:02:48AM +0000, Richard Purdie wrote:
> 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.
I'll update my first patch to remove TARGET_ARCH, I'm testing
SDKPATH = "/usr/local/${SDK_NAME_PREFIX}"
now, then we still have to deal with different toplevel SYSROOT (if we
want to use STAGING_LIBDIR etc).
x86_64-nativesdk-oesdk-linux (python-nativesdk)
x86_64-oesdk-linux-nativesdk (gdb-cross-canadian-*)
And that looks even more like another wrong variable to me, but as I've
said in 1st thread (SDK confusion) I normaly don't build SDKs so maybe
there are hidden reasons to stage them in different dirs.
I can use Eric's
${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}
to look into right sysroot, but maybe it's again not right direction.
> 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.
Not really but it's getting better :).
> The patches you're sending don't fix the root problem though.
Originaly they were meant mostly to show the difference between
nativesdk and cross-canadian paths.. so I'm not much surprised :).
Cheers,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2012-02-25 13:20 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
2012-02-25 13:12 ` Martin Jansa [this message]
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=20120225131218.GP3769@jama.jama.net \
--to=martin.jansa@gmail.com \
--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