[oe] RFC: Inclusion of re-written binconfig's in SDK

Tim Harvey tim_harvey at yahoo.com
Thu May 12 00:08:40 UTC 2011


Greetings,

I've been struggling trying to understand the in's and out's of SDK's built
by meta-toolchain for a while.  While the produced SDK works very well for
simple makefiles as well as things that use pkgconfig, I've seen various
snippets of documentation out there that state for autoconf projects simply
invoke configure such as:  ./configure --host=$TARGET_SYS

I've found this to perhaps rarely be the case and am trying to figure out
why and if anything better can be done.  The issue that I see is that
autoconf projects that require lib support typically (always?) use
binconfigs (ie freetype-config) to provide flags for the compiler and
linker.  These binconfigs come from the various upstream lib packages and
are packaged in the -dev packages (ie libfreetype-dev_*.ipk).  As these -dev
packages are intended to work for compiling against on the target, they
return paths based on /.  This however does not work when cross-compiling in
the SDK and if used by autoconf will end up putting / based paths in your
flags.  OE native builds work around these issues by staging mangled
binconfigs (by virtue of binconfig.bbclass) in STAGING_DIR such that when
autoreconf is run in oe_runconf the correct paths are returned relative to
STAGING_DIR.

I wonder if a better approach would be to have binconfig.bbclass mangle the
binconfigs such that they return paths pre-pended by '$LIBTOOL_SYSROOT_PATH'
(unresolved) which on a target could resolve to "" and in an SDK would
resolve to the correct sysroot path within the SDK based on its exported
environment.  With this in place, the same binconfig can be staged to
STAGING_DIR as well as packaged in the -dev package.  I wonder if
additionally the path to the binconfigs ($DSK_PATH/../bin) should be added
to the exported PATH from the SDK's environment-setup.sh

Thoughts?

Are there other issues that I'm neglecting to think about with autoconf that
makes all of this pointless?

I've been told that 'libtool with sysroot' support may be the answer to all
of this but I'm not understanding libtool well or how that necessarily helps
a broken or perhaps 'inadequate for cross-compiling' autoconf config.

Thanks,

Tim



More information about the Openembedded-devel mailing list