* Documentation on WORKDIR
@ 2013-11-29 9:02 Guenzel, Robert
2013-11-29 13:41 ` Martin Jansa
0 siblings, 1 reply; 2+ messages in thread
From: Guenzel, Robert @ 2013-11-29 9:02 UTC (permalink / raw)
To: yocto@yoctoproject.org
[-- Attachment #1: Type: text/plain, Size: 1587 bytes --]
Hello,
I am currently starting to work with Yocto and I am having a bit of a hard time to figure out how the two documented versions of WORKDIR come into existence.
The doc states:
"""
For packages that are not dependent on a particular machine, WORKDIR is defined as follows:
${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
[...]
For packages that are dependent on a particular machine, WORKDIR is defined slightly different:
${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
"""
Now I tried to figure out how a package becomes machine dependent, and I could not find this.
After poking around in already existing layers and recipes, I think that the doc is misleading.
It appears to me that only one version exists, which is:
${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
And in case a package is machine specific, one overrides the default PACKAGE_ARCH with (the undocumented)
variable MACHINE_ARCH like this:
PACKAGE_ARCH="${MACHINE_ARCH}"
(where I believe that MACHINE_ARCH is equal to MACHINE??)
Which will then lead to a WORKDIR that looks like ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
(but still is ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}).
(there are some bbclasses that do this, and there are some recipes that do it).
Being pretty new to Yocto, I have the feeling that I simply got it all wrong, so before posting bugs or something, I'd wanted to know
if anybody could shed light on this.
thanks and best regards
Robert
[-- Attachment #2: Type: text/html, Size: 4496 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Documentation on WORKDIR
2013-11-29 9:02 Documentation on WORKDIR Guenzel, Robert
@ 2013-11-29 13:41 ` Martin Jansa
0 siblings, 0 replies; 2+ messages in thread
From: Martin Jansa @ 2013-11-29 13:41 UTC (permalink / raw)
To: Guenzel, Robert; +Cc: yocto@yoctoproject.org
[-- Attachment #1: Type: text/plain, Size: 2903 bytes --]
On Fri, Nov 29, 2013 at 09:02:47AM +0000, Guenzel, Robert wrote:
> Hello,
>
> I am currently starting to work with Yocto and I am having a bit of a hard time to figure out how the two documented versions of WORKDIR come into existence.
>
> The doc states:
> """
> For packages that are not dependent on a particular machine, WORKDIR is defined as follows:
> ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
> [...]
> For packages that are dependent on a particular machine, WORKDIR is defined slightly different:
> ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
> """
>
> Now I tried to figure out how a package becomes machine dependent, and I could not find this.
> After poking around in already existing layers and recipes, I think that the doc is misleading.
>
> It appears to me that only one version exists, which is:
> ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
The correct definition is:
bitbake.conf:BASE_WORKDIR ?= "${TMPDIR}/work"
bitbake.conf:WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
bitbake.conf:MULTIMACH_TARGET_SYS = "${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
>
> And in case a package is machine specific, one overrides the default PACKAGE_ARCH with (the undocumented)
> variable MACHINE_ARCH like this:
> PACKAGE_ARCH="${MACHINE_ARCH}"
> (where I believe that MACHINE_ARCH is equal to MACHINE??)
For machines with '-' it isn't.
bitbake.conf:MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH', True), d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')}"
> Which will then lead to a WORKDIR that looks like ${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}/${PV}-${PR}
> (but still is ${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}/${PV}-${PR}).
>
> (there are some bbclasses that do this, and there are some recipes that do it).
When the recipe is something MACHINE-specific or depends on something
MACHINE-specific it assigns to PACKAGE_ARCH
PACKAGE_ARCH = "${MACHINE_ARCH}"
In some cases it's done automagically, when you have file://foo in
SRC_URI and foo file is taken from path which contains MACHINE, e.g.
when building pointercal recipe for qemux86, this file will be used:
./recipes-bsp/pointercal/pointercal/qemux86/pointercal
and base.bbclass will detect it and change PACKAGE_ARCH to MACHINE_ARCH
if it isn't already MACHINE_ARCH.
> Being pretty new to Yocto, I have the feeling that I simply got it all wrong, so before posting bugs or something, I'd wanted to know
> if anybody could shed light on this.
>
> thanks and best regards
> Robert
>
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-11-29 13:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-29 9:02 Documentation on WORKDIR Guenzel, Robert
2013-11-29 13:41 ` Martin Jansa
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.