Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v8 RESEND 1/8] package: add base dependency to every package
Date: Thu, 24 Oct 2013 12:37:21 +0200	[thread overview]
Message-ID: <5268F861.6050803@mind.be> (raw)
In-Reply-To: <CAHkwnC_3oA+DKkUxVweB0Xt5wqWt11epFujXvmStEu25hGQNOA@mail.gmail.com>

On 24/10/13 09:41, Fabio Porcedda wrote:
> Hi Arnout,
> thanks for reviewing the patch set.
>
> On Wed, Oct 23, 2013 at 11:12 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>> On 18/10/13 11:34, Fabio Porcedda wrote:
>>>
>>> Move "dependencies" "dirs" "prepare" dependencies from "toolchain" to
>>> every package.
>>> This way we can build correctly every package right after the clean
>>> stage.
>>> As example with this commit we can build successfully the glibc right
>>> after the clean stage:
>>>          make clean glibc
>>>
>>> This is also a step forward supporting top-level parallel make.
>>>
>>> Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
>>
>>
>>   Although this is one of the most useful patches of the series, it is also
>> the one that introduces the circular dependency. So although it looks good,
>> I'm not ready to ack it.
>
> I've found a work around:
>
> $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dirs prepare
>
> # to prevent circular dependency
> ifneq ($(1),$(DEPENDENCIES_HOST_PREREQ))
> $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies
> endif
>
> What do you think about that?

  Looks good except that it's incorrect :-) If HOST_PREREQ contains both 
ccache and sstrip (not to mention tar or xz), the condition won't match. 
You can try something like:

ifeq ($(filter $(1),$(DEPENDENCIES_HOST_PREREQ)),)


  [Just noticed now that Thomas gave the same answer.]

>
>>
>>> ---
>>>    package/pkg-generic.mk           | 2 ++
>>>    toolchain/toolchain/toolchain.mk | 3 +--
>>>    2 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
>>> index 4bba4b5..1e7154e 100644
>>> --- a/package/pkg-generic.mk
>>> +++ b/package/pkg-generic.mk
>>> @@ -385,6 +385,8 @@ $(1)-install-host:      $(1)-build
>>> $$($(2)_TARGET_INSTALL_HOST)
>>>    $(1)-build:           $(1)-configure \
>>>                          $$($(2)_TARGET_BUILD)
>>>
>>> +$$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dependencies dirs prepare
>>
>>
>>   Is there any reason why you changed the order here?
>
> The order whit top-level parallel make does not matter, it's just that
> i was thinking that it's the right logical order:
> 1: dependencies: requisite
> 2: dirs: create empty directories
> 3. prepare: add something to the empty directories
>
> But now i understand that is "dirs prepare dependencies" or "dirs
> dependencies prepare" because dirs can require host-ccache and so

  You mean dependencies can require host-ccache, right? And host-ccache 
depends on both dirs and prepare itself...  So I do think the original 
order is more logical.

  Regards,
  Arnout

> directories,
> nevertheless this does not matter anymore.

[snip]


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

  parent reply	other threads:[~2013-10-24 10:37 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-18  9:34 [Buildroot] [PATCH v8 RESEND 0/8] Add support for top-level parallel make Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 1/8] package: add base dependency to every package Fabio Porcedda
2013-10-23 21:12   ` Arnout Vandecappelle
2013-10-24  7:41     ` Fabio Porcedda
2013-10-24  8:22       ` Thomas De Schampheleire
2013-10-25  8:09         ` Fabio Porcedda
2013-10-24 10:37       ` Arnout Vandecappelle [this message]
2013-10-25  8:07         ` Fabio Porcedda
2013-10-25  8:12           ` Arnout Vandecappelle
2013-10-25  8:45             ` Fabio Porcedda
2013-10-29  8:36               ` Fabio Porcedda
2013-10-29  9:35                 ` Thomas De Schampheleire
2013-10-29 11:06                   ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 2/8] package: add toolchain dependency to every target package Fabio Porcedda
2013-10-23 21:53   ` Arnout Vandecappelle
2013-10-27 17:55     ` Thomas Petazzoni
2013-10-28  8:01       ` Arnout Vandecappelle
2013-11-05  9:41     ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 3/8] package: add support for top-level parallel make Fabio Porcedda
2013-10-23 22:19   ` Arnout Vandecappelle
2013-11-11  9:36     ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 4/8] Makefile: " Fabio Porcedda
2013-10-23 22:29   ` Arnout Vandecappelle
2013-11-11 12:54     ` Fabio Porcedda
2013-10-23 22:40   ` Arnout Vandecappelle
2013-11-11 12:26     ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 5/8] glibc: " Fabio Porcedda
2013-10-23 22:48   ` Arnout Vandecappelle
2013-11-11 12:47     ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 6/8] uclibc: " Fabio Porcedda
2013-10-23 22:49   ` Arnout Vandecappelle
2013-11-11 12:50     ` Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 7/8] package: enable jobserver for recursive make Fabio Porcedda
2013-10-18  9:34 ` [Buildroot] [PATCH v8 RESEND 8/8] Makefile: enable top-level parallel make Fabio Porcedda
2013-10-23 21:09 ` [Buildroot] [PATCH v8 RESEND 0/8] Add support for " Arnout Vandecappelle
2013-11-11 13:49 ` Thomas Petazzoni
2013-11-12  8:39   ` Fabio Porcedda
2013-11-13 13:40     ` Fabio Porcedda
2013-11-13 20:05     ` Arnout Vandecappelle
2013-11-14  9:15       ` Fabio Porcedda

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=5268F861.6050803@mind.be \
    --to=arnout@mind.be \
    --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