[oe] [PATCH] Support building all project in one directory

Guo Hongruan camelguo at gmail.com
Fri Jan 15 09:17:05 UTC 2010


在 Fri, 15 Jan 2010 11:47:25 +0800,Mike Westerhof <mike at mwester.net> 写道:

> But most -- in fact all except perhaps yourself and a few of the OE core
> team don't build with different LIBCs in the same TMPDIR.  So all that
> your patch does for the overwhelming number of users of OE is add
> additional directory levels to an already complicated directory
> structure, and provides them with absolutely no benefit whatsoever.

Yes, I guest there are some developers who have to build OE in one  
directory. Look at below:

distro/include/angstrom.inc:CACHE = "${TMPDIR}/cache/${LIBC}/${MACHINE}"
distro/include/kaeilos.inc:CACHE = "${TMPDIR}/cache/${LIBC}/${MACHINE}"
distro/micro.conf:CACHE ?= "${TMPDIR}/cache/${LIBC}/${MACHINE}"
distro/minimal.conf:CACHE ?= "${TMPDIR}/cache/${LIBC}/${MACHINE}"
distro/shr.conf:CACHE ?= "${TMPDIR}/cache/${LIBC}/${MACHINE}"


distro/include/angstrom.inc:DEPLOY_DIR = "${TMPDIR}/deploy/${LIBC}"
distro/include/kaeilos.inc:DEPLOY_DIR = "${TMPDIR}/deploy/${LIBC}"
distro/micro.conf:DEPLOY_DIR ?= "${TMPDIR}/deploy/${LIBC}"
distro/minimal.conf:DEPLOY_DIR ?= "${TMPDIR}/deploy/${LIBC}"
distro/shr.conf:DEPLOY_DIR ?= "${TMPDIR}/deploy/${LIBC}"

 From above, I can guess that the developers or testers of the  
distributions had met the same question as me. Without ${LIBS}, sometimes  
it is difficult to determine which libc the runtime image is based on.  
Image several weeks later how can you or other maintainers tell which libc  
it's based on? Different libc means different sysroot, but without the  
changes in the patch, the whole building does not distinguish the sysroot.  
So I think adding ${LIBC} to build directory is necessary.

> At the very least, you really should provide a means to selectively
> enable this -- although I still don't see why it makes sense to support
> multiple LIBCs in the same TMPDIR.

I wanted to implement it just as the singlemachine.bbclass. But due to  
some little bugs in other bbclass, it is impossible to implement the  
function without any changes to other bbclass files. See the following   
files:

  classes/package_ipk.bbclass |    2 +-
  classes/packagedata.bbclass |    2 +-

-	pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d)
+	pkgdata = bb.data.expand('${PKGDATA_DIR}/../', d)

But, if the change is acceptable, I will try to implement it as a bbclass  
file with a little patch file.

Thanks a lot!

-- 
Guo Hongruan, Embedded Linux Consultant
Skype: camelguo
Twitter: camelguo
http://www.gulessoft.com




More information about the Openembedded-devel mailing list