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 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.