[oe] [PATCH] cross.bbclass: Override STAGING_* paths to match cross installation
Richard Purdie
rpurdie at rpsys.net
Tue Aug 10 14:53:18 UTC 2010
On Mon, 2010-08-09 at 08:48 -0700, Khem Raj wrote:
> On Mon, Aug 9, 2010 at 4:12 AM, Richard Purdie <rpurdie at rpsys.net> wrote:
> > Hi Khem,
> >
> > On Sun, 2010-08-08 at 23:44 -0700, Khem Raj wrote:
> >> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> >> ---
> >> classes/cross.bbclass | 8 ++++++++
> >> 1 files changed, 8 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/classes/cross.bbclass b/classes/cross.bbclass
> >> index cf14db1..64f7902 100644
> >> --- a/classes/cross.bbclass
> >> +++ b/classes/cross.bbclass
> >> @@ -50,6 +50,14 @@ exec_prefix = "${prefix}"
> >> base_sbindir = "${base_prefix}/bin"
> >> sbindir = "${exec_prefix}/bin"
> >>
> >> +# staging should be special for cross
> >> +STAGING_BINDIR = "${bindir}"
> >> +STAGING_LIBDIR = "${libdir}"
> >> +STAGING_INCDIR = "${includedir}"
> >> +STAGING_ETCDIR = "${sysconfdir}"
> >> +STAGING_DATADIR = "${datadir}"
> >> +STAGING_SBINDIR = "${sbindir}"
> >> +
> >> do_install () {
> >> oe_runmake 'DESTDIR=${D}' install
> >> }
> >
> > Can you explain a bit more about why is this needed?
>
> yes. for cross packages prefix is set in cross.bbclass to be
> ${base_prefix}${prefix_native}/${BASE_PACKAGE_ARCH}
> which already points into native sysroot and bindir, datadir etc are
> defined based on prefix in bitbake.conf so
> for cross packages datadir already points to where it is in the final
> install location of the cross packages.
>
> but STAGING_* dirs are then defined like below
>
> STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
> STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
>
> where
> STAGING_DIR_HOST expands to <native sysroot> in the case of cross
> packages because for them BASEPKG_HOST_SYS
> is the build system itself. I think this is a the reason why we have
> NATIVE_STAGING_* vars defined separately.
> probably we should have the same set defined for cross too may be
> something like CROSS_STAGING_* is one solution.
>
> and now all these STAGING_* defines create another native sysroot
> directory insise the existing one.
> so I get /scratch/oe/sysroot/x86_64-linux/scrarch/oe/sysroot/x86_64-linux/usr/armv5te/shared/
> etc. paths while
> building binutils-cross
>
> because STAGING_* variables are used in autotools.bbclass
>
> Thats why this patch
So the problem is empty directory creation?
I'm tempted to suggest a more radical approach of not having all these
directories created by autotools.bbclass...
Cheers,
Richard
More information about the Openembedded-devel
mailing list