From: Olivier Matz <olivier.matz@6wind.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: dev@dpdk.org, thomas.monjalon@6wind.com, robin.jarry@6wind.com,
jerin.jacob@caviumnetworks.com, keith.wiles@intel.com
Subject: Re: [PATCH v2] mk: optimize directory dependencies
Date: Thu, 30 Mar 2017 10:51:48 +0200 [thread overview]
Message-ID: <20170330105148.2d8db736@platinum> (raw)
In-Reply-To: <2c512b48-b791-7072-1b73-3ee07fd11a22@intel.com>
Hi Ferruh,
On Tue, 28 Mar 2017 11:34:35 +0100, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> On 3/24/2017 1:21 PM, Olivier Matz wrote:
> > Before this patch, the management of dependencies between directories
> > had several issues:
> >
> > - the generation of .depdirs, done at configuration is slow: it can take
> > more than one minute on some slow targets (usually ~10s on a standard
> > PC without -j).
> >
> > - for instance, it is possible to express a dependency like:
> > - app/foo depends on lib/librte_foo
> > - and lib/librte_foo depends on app/bar
> > But this won't work because the directories are traversed with a
> > depth-first algorithm, so we have to choose between doing 'app' before
> > or after 'lib'.
> >
> > - the script depdirs-rule.sh is too complex.
> >
> > - we cannot use "make -d" for debug, because the output of make is used for
> > the generation of .depdirs.
> >
> > This patch moves the DEPDIRS-* variables in the upper Makefile, making
> > the dependencies much easier to calculate. A DEPDIRS variable is still
> > used to process library dependencies in LDLIBS.
> >
> > After this commit, "make config" is almost immediate.
> >
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > Tested-by: Robin Jarry <robin.jarry@6wind.com>
> > Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>
> <...>
>
> > DIRS-$(CONFIG_RTE_LIBRTE_PORT) += librte_port
> > +DEPDIRS-librte_port := librte_eal librte_mbuf librte_mempool librte_ether
> > +DEPDIRS-librte_port += librte_ip_frag librte_sched librte_kni
> ^
> ---------------------------------------------------------+
>
> <...>
>
> > diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
> > index 44fa73520..76629a13a 100644
> > --- a/lib/librte_port/Makefile
> > +++ b/lib/librte_port/Makefile
> <...>
> > -ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
> > -DEPDIRS-$(CONFIG_RTE_LIBRTE_PORT) += lib/librte_kni
> > -endif
>
> This check needs to be reflected to new method, otherwise causing build
> errors for i686 target.
>
Did you notice an error? I see no error it with:
make config T=x86_64-native-linuxapp-gcc
sed -i 's,CONFIG_RTE_LIBRTE_KNI=y,# CONFIG_RTE_LIBRTE_KNI is not set,' build/.config
make -j8
I think it is not a problem, the DEPDIRS-* variable only gives an
ordering directive, which should be ok even if kni is not compiled.
Regards,
Olivier
next prev parent reply other threads:[~2017-03-30 8:51 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-22 1:50 [PATCH] mk: parallelize make config Ferruh Yigit
2017-01-23 17:18 ` Olivier Matz
2017-01-23 17:19 ` [PATCH] mk: optimize directory dependencies Olivier Matz
2017-01-24 11:19 ` Robin Jarry
2017-01-24 11:26 ` Bruce Richardson
2017-01-24 12:31 ` Robin Jarry
2017-01-24 11:40 ` Jerin Jacob
2017-01-24 12:15 ` Bruce Richardson
2017-01-24 12:56 ` Jerin Jacob
2017-01-24 13:26 ` Richardson, Bruce
2017-01-24 14:50 ` Olivier MATZ
2017-01-24 14:55 ` Wiles, Keith
2017-03-01 11:25 ` Thomas Monjalon
2017-03-01 12:10 ` Bruce Richardson
2017-03-01 12:30 ` Olivier Matz
2017-01-24 13:05 ` Ferruh Yigit
2017-03-17 17:13 ` Olivier Matz
2017-03-17 17:47 ` Robin Jarry
2017-03-20 8:31 ` Olivier Matz
2017-03-24 13:21 ` [PATCH v2] " Olivier Matz
2017-03-27 21:33 ` Thomas Monjalon
2017-03-28 10:34 ` Ferruh Yigit
2017-03-30 8:51 ` Olivier Matz [this message]
2017-03-30 9:27 ` Ferruh Yigit
2017-03-30 12:11 ` Olivier Matz
2017-03-30 12:32 ` [PATCH] mk: fix dependencies to optional configs Olivier Matz
2017-03-30 12:37 ` Ferruh Yigit
2017-03-30 13:37 ` Thomas Monjalon
2017-01-23 17:50 ` [PATCH] mk: parallelize make config Wiles, Keith
2017-01-24 8:42 ` Olivier MATZ
2017-01-24 10:02 ` Bruce Richardson
2017-01-23 19:03 ` Michał Mirosław
2017-01-30 9:41 ` Ferruh Yigit
2017-01-24 10:52 ` Bruce Richardson
2017-01-29 15:29 ` Thomas Monjalon
2017-01-30 9:46 ` Ferruh Yigit
2017-01-30 10:21 ` [PATCH v2] " Ferruh Yigit
2017-01-30 18:13 ` Thomas Monjalon
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=20170330105148.2d8db736@platinum \
--to=olivier.matz@6wind.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=jerin.jacob@caviumnetworks.com \
--cc=keith.wiles@intel.com \
--cc=robin.jarry@6wind.com \
--cc=thomas.monjalon@6wind.com \
/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.