[oe] Missing includes in STAGING_INCDIR

Tom Cooksey thomas.cooksey at trolltech.com
Tue Mar 4 12:20:04 UTC 2008


> > I am writing a recipie for Qt/Embedded 4.4 beta (using qt4 recipies as a
> > base). At the moment Qt's configure test fails on dbus. I have added
> > -I${STAGING_INCDIR}/dbus-1.0 to the configure flags so the configure test
> > now picks up dbus/dbus.h correctly.
> >
> > However, dbus.h itself includes dbus/dbus-arch-deps.h, which is not in
> > ${STAGING_INCDIR}/dbus-1.0/*, but _is_ in the dbus work dir. This means I
> > have to add the dbus work dir to the include list, which feels wrong.
> 
> Surely that's wrong. Actually dbus-arch-deps.h is where it belongs to, 
> ${libdir}/dbus-1.0/include/. On my favourite system this is:
> 
> tmp/staging/arm-angstrom-linux-gnueabi/lib/dbus-1.0/include/dbus/dbus-arch-deps.h

Ok, yes, I have this too. Why the two different include paths? Surely 
${STAGING_INCDIR}/dbus-1.0/ is useless without the other?

> > I have had the same problem with gstreamer too. I think something has
> > broken recently, as I've tried building the existing qtopia core recipies
> > and had the same failures.
> 
> Just rely on pkgconfig and it will do the job. The relevant excerpt for dbus 
> is:

Ah... we disable pkgconfig when cross-compiling. ;-) It usually uses the host's includes
and libraries due to most toolchains shipping with broken .pc files. We thought
the compiler spitting out "Can't find ..." is better than "... binary is incompatable".
It looks like OE runs .pc files through sed, is this to fix the same issue?

I'll add ${libdir}/dbus-1.0/include to the configure line. Is libdir or STAGING_LIBDIR
the best to use? Ideally this would go into the mkspec file for the cross-compiler.
Otherwise, it will be passed to the host compiler too (Not that the host compiler's
used much with qmake & friends built seperatly).

I might look into changing the current "patch the mkspecs/common/*" way of doing 
things to actually installing a proper mkspec for the OE cross compiler. Would you 
have any objection to this?

Also, as cross-compiling is supported on Qt/Embedded, I'm doing things "the qt way"
rather than using the cross-compile patch the other qt4 packages use. Don't want
to patch the source if I don't need to.


Cheers,

Tom





More information about the Openembedded-devel mailing list