On Thu, Feb 6, 2014 at 12:20 AM, Darren Hart <[email protected]> wrote: > On 2/5/14, 20:30, "Bruce Ashfield" <[email protected]> wrote: > >>On Wed, Feb 5, 2014 at 11:02 PM, Darren Hart <[email protected]> >>wrote: >>> The current linux-yocto build dir (B) includes MACHINE. This has been >>> appropriate as kernels are typically built machine-specific. We have >>> recently introduced an intel-common type kernel which can be shared >>> across multiple machines sharing a common base (intel-core2-32, >>> intel-corei7-64). In these cases, the kernel is built for a something >>> more generic than MACHINE, and the current mechanism results in >>> something like this when building for MACHINE=sys940x (using >>>intel-common): >>> >>> tmp/work/core2-32-intel-common-poky-linux/linux-yocto-dev/ \ >>> >>>3.13++gitAUTOINC+e5d23e7879_889c6bec6b-r0/linux-sys940x-noemgd-standard-b >>>uild >>> >>> Note the descrepancy between core2-32-intel-common and >>> linux-sys940x-noemgd-standard-build. This becomes counterintuitive at >>> the very least when switching to another machine and attempting to reuse >>> this build. This patch swaps MACHINE for PACKAGE_ARCH (which is >>> typically MACHINE_ARCH for linux-yocto), resulting in the following >>> build path: >>> >>> tmp/work/core2-32-intel-common-poky-linux/linux-yocto-dev/ \ >>> >>>3.13++gitAUTOINC+e5d23e7879_889c6bec6b-r0/linux-core2-32-intel-common-sta >>>ndard-build >>> >>> The impact to existing MACHINEs is a replace of - with _ if MACHINE >>> contains one or more - charachters. >>> >>> Signed-off-by: Darren Hart <[email protected]> >>> Cc: Bruce Ashfield <[email protected]> >>> Cc: Richard Purdie <[email protected]> >>> --- >>> meta/recipes-kernel/linux/linux-yocto.inc | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/meta/recipes-kernel/linux/linux-yocto.inc >>>b/meta/recipes-kernel/linux/linux-yocto.inc >>> index 2bee042..4ed3188 100644 >>> --- a/meta/recipes-kernel/linux/linux-yocto.inc >>> +++ b/meta/recipes-kernel/linux/linux-yocto.inc >>> @@ -31,7 +31,7 @@ inherit kernel >>> inherit kernel-yocto >>> require linux-dtb.inc >>> >>> -B = "${WORKDIR}/linux-${MACHINE}-${LINUX_KERNEL_TYPE}-build" >>> +B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build" >> >>But for truly machine specific kernel builds, won't this cause us >>collisions ? > > I don't see how. Note the build paths above. For truly machine-specifc > builds, the WORKDIR is already machine-specific (because the PACKAGE_ARCH > is MACHINE_ARCH), so there is no need to specify the MACHINE in the S or B > dirs really at all. In fact, just calling this linux-build without any > other modifier would be fine I think. What I attempted here was in keeping > with the intent of the design: identify what we are building for in the B > dir.
Right you are. For a machine specific kernel recipe, workdir will provide the separation. I missed that. And yes, even though it is a bit redundant, it is still nice to keep that extra identifier in the buildir name. So this is Ack'd from my side. Bruce > > -- > Darren > > -- "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end" _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
