[Buildroot] [PATCH next v5 7/9] core: implement per-package SDK and target
Arnout Vandecappelle
arnout at mind.be
Fri Nov 23 15:44:32 UTC 2018
On 23/11/2018 14:25, Thomas Petazzoni wrote:
> Hello Arnout,
>
> Thanks for the review!
>
> On Wed, 21 Nov 2018 00:32:11 +0100, Arnout Vandecappelle wrote:
>
>>>> output/per-package/busybox/target
>>>> output/per-package/busybox/host
>>>> output/per-package/host-fakeroot/target
>>>> output/per-package/host-fakeroot/host
>>> I'm not fond of the naming here...
>> Yay bikeshedding!
> :-)
>
>>> In the end, can we expect to have a layout that would look like:
>>>
>>> output/build/busybox/host/
>>> output/build/busybox/target/
>>> output/build/busybox/busybox-1.2.3/ # Source tree, and
>>> # currently, build dir
>> If we're changing the world anyway, what about:
>>
>> output/work/busybox-1.2.3/source
>> output/work/busybox-1.2.3/host
>> output/work/busybox-1.2.3/target
>> output/work/busybox-1.2.3/build
>
> You need two build folders: one for the target variant and one for the
> host variant.
Clearly not a good name then, because with "host" I meant the per-package host
directory, i.e. the target package's host directory. There would also be a
output/work/host-busybox-1.2.3/source
output/work/host-busybox-1.2.3/host
output/work/host-busybox-1.2.3/target
output/work/host-busybox-1.2.3/build
Oh, but that would defeat the point of the source/build directory split...
Never mind then :-)
>> Or maybe even:
>>
>> output/work/busybox-1.2.3/source
>> output/work/busybox-1.2.3/dependencies/host
>> output/work/busybox-1.2.3/dependencies/staging -> host/tuple/sysroot
>> output/work/busybox-1.2.3/dependencies/target
>> output/work/busybox-1.2.3/build
> Also, I don't really like the word "work", that's what is used in OE
> and I find it very fuzzy.
That was the whole point, we should become OE! :-) BTW, OE also uses "tmp",
that's a lot better of course.
But I see that in the end you kept the per-package directory. Reviewing all the
options, I agree that that is still the best one.
[snip]
>> More importantly, however: should we also sync the target directory for host
>> packages? We *are* syncing the staging directory, of course...
>
> Does it really matter ? A host package will only have other host
> packages as its dependencies, so its per-package target directory will
> always be empty. I did a test build, and all
> output/per-package/host-*/target/ folders were empty.
>
> So I am not sure it is really worth adding more conditionals in the
> code just to avoid those empty target directories. But if you really
> want that, I'll do it.
No, let's keep it as it is, it's not worth it.
In fact, host packages may install stuff in target (e.g. host-gcc-final
installs libstdc++.so I think). So if a target package depends indirectly on
such a package through a different host package, we should still have its target
populated.
Regards,
Arnout
[snip]
More information about the buildroot
mailing list