[dpdk-dev] [PATCH] mk: fix FreeBSD build
Sergio Gonzalez Monroy
sergio.gonzalez.monroy at intel.com
Mon Jul 18 16:06:03 CEST 2016
On 18/07/2016 14:54, Christian Ehrhardt wrote:
> Hi Sergio,
> you might have seen that I had a similar version with awk in v2 IIRC.
> I also had the secondary tmp file just like you now.
> So, since it is so close to my old submission I wont object :-)
>
> Back then the discussion went for reduced build time dependencies and
> avoiding a second temp file, which was ok for me - so sed was chosen.
>
I haven't seen a noticeable performance impact by using second temp file.
Thomas has suggested using a temp var instead of second temp file, what
do you think about that?
> I see that breaking on BSD causes us to rework it again, sorry that I
> was unable to test there.
>
No worries.
> If you could come up with a Solution "sed + no-temp2 + noGNUspecifics"
> that would be great and solve everybodies needs.
> If not, it is a call up to the participants of the old discussion if
> not working on BSD outweighs their old feedback (I guess so).
>
Any reason of sed over awk? I reckon awk is simpler syntax for this job.
From what I have seen most of the time is spent on resolving
directory/library dependencies not on the .config itself.
Sergio
> Most active in the discussion back then was Ferruh IIRC - setting to CC.
>
>
>
> Christian Ehrhardt
> Software Engineer, Ubuntu Server
> Canonical Ltd
>
> On Mon, Jul 18, 2016 at 3:39 PM, Sergio Gonzalez Monroy
> <sergio.gonzalez.monroy at intel.com
> <mailto:sergio.gonzalez.monroy at intel.com>> wrote:
>
> On 18/07/2016 14:25, Thomas Monjalon wrote:
>
> 2016-07-18 14:11, Sergio Gonzalez Monroy:
>
> The sed syntax of '0,/regexp/' is GNU specific and fails with
> non GNU sed in FreeBSD.
>
> To solve the issue we can use awk instead to remove
> duplicates.
>
> Christian, an opinion please?
>
>
> Sorry, forgot to CC him.
>
> Fixes: b2063f104db7 ("mk: filter duplicate configuration
> entries")
>
> Signed-off-by: Sergio Gonzalez Monroy
> <sergio.gonzalez.monroy at intel.com
> <mailto:sergio.gonzalez.monroy at intel.com>>
>
> [...]
>
> - for config in $$(grep -v "^#"
> $(RTE_OUTPUT)/.config_tmp | cut -d"=" -f1 | sort | uniq
> -d); do \
> - while [ $$(grep "^$${config}="
> $(RTE_OUTPUT)/.config_tmp -c ) -gt 1 ]; do \
> - sed -i
> "0,/^$${config}=/{//d}" $(RTE_OUTPUT)/.config_tmp; \
> - done; \
> - done; \
> + grep -v "^#" $(RTE_OUTPUT)/.config_tmp |
> awk -F'=' '{a[$$1]=$$0} END {for (i in a) print a[i]}' >
> $(RTE_OUTPUT)/.config_tmp2 ; \
> + mv $(RTE_OUTPUT)/.config_tmp2
> $(RTE_OUTPUT)/.config_tmp ; \
> + rm -f $(RTE_OUTPUT)/.config_tmp2 ; \
>
> You can avoid creating/deleting the file .config_tmp2 by using
> a variable:
> config=$(grep -v '^#' $(RTE_OUTPUT)/.config_tmp)
> echo "$config" | awk ... > $(RTE_OUTPUT)/.config_tmp
>
>
> Sure.
>
> Sergio
>
>
More information about the dev
mailing list