From: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 00/51] TLP/PPS: intro, package cleanup.
Date: Mon, 17 Oct 2016 13:02:13 -0300 [thread overview]
Message-ID: <d8e3ec4c46175ca4d852efcfdea65c19@free-electrons.com> (raw)
In-Reply-To: <6e24662f-d0fd-461e-0059-6f2e23273480@mind.be>
On 2016-10-14 12:48, Arnout Vandecappelle wrote:
> Hi Gustavo,
>
> On 14-10-16 00:13, gustavo.zacarias at free-electrons.com wrote:
>> From: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
>>
>> This is the first step in picking up Fabio Porcedda's work
>> ( http://lists.busybox.net/pipermail/buildroot/2015-June/131051.html )
>> regarding TLP (Top-Level Parallel) support and moving it forward for
>> mainstream buildroot inclusion.
>>
>> PPS (Per-Package Staging) is the central piece in enabling the
>> configure/build/install of packages simultaneously. Right now packages
>> pick up libraries/includes from a shared (the staging) directory.
>> Once TLP is enabled this is problematic because despite the
>> developers/contributors best efforts not all dependencies are
>> accounted
>> for properly.
>> When building and installing in parallel a package 'A' can be
>> installing development files (headers/libraries) while package 'B'
>> is configuring, and potentially probing for its dependencies.
>> If package 'B' can use unaccounted dependencies from package 'A' this
>> can be a problem since the feature probe might not be atomic, hence
>> it might find erroneous package 'A' features since the install to the
>> staging area might not be complete when it's doing this.
>> To avoid this the proposal is to limit the staging directory scope
>> of packages only to the required and requested dependencies.
>
> Note that it's not enough to do it for staging, host needs it as well.
Hi Arnout.
Indeed, i'll be sending a new series that handles more target package
fixes, addressed the ones from the previous series that needed fixes and
does so for host packages as well.
For host packages i call this PPH (Per-Package Host directory/area), i'm
working on PPS first and then i'll move on to PPH.
And then there's PPL (Per-Package Logging) since looking at the output
when building TLP makes debugging very hard, so having a per-package
configure/build/install/etc log will make life easier (with a decent
playback when things go bad).
>> For this to happen packages need a special staging area that fulfills
>> its dependencies, hence overriding its sysroot, which must happen via
>> environment variable overrides (there are a couple of ways to
>> accomplish this, but they all require overrides via env variables).
>>
>> To accomplish this some packages need a small cleanup, which is
>> passing the $(TARGET_MAKE_ENV) variable which will contain this setup
>> for their build and install steps, to be able to override the default
>> build rules.
>
> Actually, I think it's better/safer/easier to just do a global export
> from the
> Makefile:
>
> export BR2_STAGING_DIR = $($(PKG)_STAGING_DIR)
>
> and perhaps also
>
> _STAGING_DIR = $(STAGING_DIR)
>
> to allow it to be used outside package build rules as well.
I'm toying with the idea of a sandbox as well that will just restrict
the view of the full staging area per-package to the dependencies it
needs (LD_PRELOADed).
This would alleviate the overhead in copying/linking all those files,
but it's a bit more complex.
Regards.
next prev parent reply other threads:[~2016-10-17 16:02 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 22:13 [Buildroot] [PATCH 00/51] TLP/PPS: intro, package cleanup gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 01/51] lsof: use $(TARGET_MAKE_ENV) when calling $(MAKE) gustavo.zacarias at free-electrons.com
2016-10-14 15:09 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 02/51] wf111: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 03/51] p910nd: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 04/51] lz4: " gustavo.zacarias at free-electrons.com
2016-10-14 14:40 ` Arnout Vandecappelle
2016-10-14 14:45 ` Gustavo Zacarias
2016-10-13 22:13 ` [Buildroot] [PATCH 05/51] zlog: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 06/51] ed: " gustavo.zacarias at free-electrons.com
2016-10-14 14:41 ` Arnout Vandecappelle
2016-10-14 14:45 ` Arnout Vandecappelle
2016-10-14 14:56 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 07/51] arptables: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 08/51] librtas: " gustavo.zacarias at free-electrons.com
2016-10-14 15:03 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 09/51] wireless_tools: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 10/51] pifmrds: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 11/51] hans: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 12/51] irda-utils: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 13/51] xvkbd: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 14/51] tinyalsa: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 15/51] openssl: " gustavo.zacarias at free-electrons.com
2016-10-14 14:43 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 16/51] mplayer: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 17/51] tcping: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 18/51] ncurses: " gustavo.zacarias at free-electrons.com
2016-10-14 15:13 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 19/51] smstools3: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 20/51] rtmpdump: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 21/51] iputils: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 22/51] open2300: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 23/51] opentyrian: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 24/51] poco: " gustavo.zacarias at free-electrons.com
2016-10-14 15:18 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 25/51] pppd: " gustavo.zacarias at free-electrons.com
2016-10-14 15:18 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 26/51] statserial: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 27/51] ti-utils: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 28/51] blktrace: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 29/51] boost: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 30/51] bsdiff: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 31/51] feh: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 32/51] gadgetfs-test: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 33/51] iw: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 34/51] jack2: " gustavo.zacarias at free-electrons.com
2016-10-14 14:50 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 35/51] libnss: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 36/51] lmbench: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 37/51] moarvm: " gustavo.zacarias at free-electrons.com
2016-10-14 15:10 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 38/51] mongoose: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 39/51] libfreeimage: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 40/51] live555: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 41/51] pptp-linux: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 42/51] unrar: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 43/51] mtdev2tuio: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 44/51] ushare: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 45/51] libtommath: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 46/51] odhcploc: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 47/51] espeak: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 48/51] duma: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 49/51] aufs-util: " gustavo.zacarias at free-electrons.com
2016-10-13 22:13 ` [Buildroot] [PATCH 50/51] ocrad: " gustavo.zacarias at free-electrons.com
2016-10-14 15:16 ` Arnout Vandecappelle
2016-10-13 22:13 ` [Buildroot] [PATCH 51/51] dmidecode: " gustavo.zacarias at free-electrons.com
2016-10-14 15:48 ` [Buildroot] [PATCH 00/51] TLP/PPS: intro, package cleanup Arnout Vandecappelle
2016-10-15 12:19 ` Thomas Petazzoni
2016-10-17 16:02 ` Gustavo Zacarias [this message]
2016-10-17 16:52 ` Arnout Vandecappelle
2016-10-23 8:52 ` Peter Korsgaard
2016-10-25 7:59 ` Jérôme Pouiller
2016-10-25 9:29 ` Arnout Vandecappelle
2016-10-28 21:25 ` Gustavo Zacarias
2016-10-15 17:42 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8e3ec4c46175ca4d852efcfdea65c19@free-electrons.com \
--to=gustavo.zacarias@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox