[dpdk-dev] [PATCH] kni: fix use of undefined comma variable in makefile
Olivier Matz
olivier.matz at 6wind.com
Mon May 30 18:21:53 CEST 2016
Hi Ferruh,
On 05/30/2016 05:49 PM, Ferruh Yigit wrote:
> On 5/30/2016 12:56 PM, Olivier Matz wrote:
>> The $(comma) variable is not defined in this Makefile, nor in
>> any included Makefile. Seen while doing a "make clean" on ubuntu:
>>
>> $ make clean
>> == Clean lib
>> == Clean lib/librte_compat
>> == Clean lib/librte_eal
>> == Clean lib/librte_eal/common
>> == Clean lib/librte_eal/linuxapp
>> == Clean lib/librte_eal/linuxapp/eal
>> == Clean lib/librte_eal/linuxapp/igb_uio
>> == Clean lib/librte_eal/linuxapp/kni
>> tr: missing operand after ‘.-’
>> Two strings must be given when translating.
>> Try 'tr --help' for more information.
>
> I don't observe this error on Ubuntu.
>
> Also did a quick check and $(comma) seems defined, but not sure exactly
> where. What I test:
>
> $ lsb_release -si
> Ubuntu
>
>
> $ git diff
> diff --git a/lib/librte_eal/linuxapp/kni/Makefile
> b/lib/librte_eal/linuxapp/kni/Makefile
> index ac99d3f..dcad241 100644
> --- a/lib/librte_eal/linuxapp/kni/Makefile
> +++ b/lib/librte_eal/linuxapp/kni/Makefile
> @@ -90,4 +90,7 @@ SRCS-y += kni_net.c
> SRCS-y += kni_ethtool.c
> SRCS-$(CONFIG_RTE_KNI_VHOST) += kni_vhost.c
>
> +test_comma:
> + @echo "= comma: $(comma) ="
> +
>
>
>
> $ make -C lib/librte_eal/linuxapp/kni test_comma
> make: Entering directory '.../dpdk/lib/librte_eal/linuxapp/kni'
> = comma: , =
> make: Leaving directory '.../dpdk/lib/librte_eal/linuxapp/kni'
Thanks for testing and review.
I added the following lines to the makefile (just after the include
rte.vars.mk):
$(info ------------------)
$(info comma=$(comma))
$(info $(origin comma))
And it gives me:
$ make clean
== Clean lib/librte_eal/linuxapp/kni
--------------------
comma=,
file
make -C /lib/modules/3.13.0-79-generic/build
M=/home/user/dpdk.org/build/build/lib/librte_eal/linuxapp/kni
O=/lib/modules/3.13.0-79-generic/build clean
make -C /usr/src/linux-headers-3.13.0-79-generic \
KBUILD_SRC=/usr/src/linux-headers-3.13.0-79-generic \
KBUILD_EXTMOD="/home/user/dpdk.org/build/build/lib/librte_eal/linuxapp/kni"
-f /usr/src/linux-headers-3.13.0-79-generic/Makefile \
clean
make -f /usr/src/linux-headers-3.13.0-79-generic/scripts/Makefile.clean
obj=/home/user/dpdk.org/build/build/lib/librte_eal/linuxapp/kni
--------------------
comma=
undefined
tr: missing operand after ‘.-’
Two strings must be given when translating.
Try 'tr --help' for more information.
[...]
Actually this Makefile is used twice, and second time the $(comma)
variable is not defined.
It seems the $(comma) variable is defined in rte.cpuflags.mk when
including rte.vars.mk:
mk/rte.vars.mk
mk/target/generic/rte.vars.mk
mk/rte.cpuflags.mk (only if KERNELRELEASE is unset, which is
not the case for the second call)
Do you see the issue when you do a "make clean"?
Thanks,
Olivier
More information about the dev
mailing list