All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Olivier Matz <olivier.matz@6wind.com>, dev@dpdk.org
Cc: thomas.monjalon@6wind.com, helin.zhang@intel.com
Subject: Re: [PATCH] kni: fix use of undefined comma variable in makefile
Date: Tue, 31 May 2016 14:35:56 +0100	[thread overview]
Message-ID: <574D933C.2080507@intel.com> (raw)
In-Reply-To: <574C6E71.3090601@intel.com>

On 5/30/2016 5:46 PM, Ferruh Yigit wrote:
> On 5/30/2016 5:21 PM, Olivier Matz wrote:
>> 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"?
>>
> 
> No issue on "make clean".
> 
> I did same modification as you did, for me comma defined for both times,
> a system variable can be triggering the behavior perhaps.
> 
> What I got with "make clean" is:
> 
> ...
> == Clean lib/librte_eal/linuxapp/kni
> ------------
> comma=,
> file
> make -C /lib/modules/4.4.0-22-generic/build
> M=/home/ferruhy/development/dpdk/build/build/lib/librte_eal/linuxapp/kni
> O=/lib/modules/4.4.0-22-generic/build clean
> make -C /usr/src/linux-headers-4.4.0-22-generic
> KBUILD_SRC=/usr/src/linux-headers-4.4.0-22-generic \
> -f /usr/src/linux-headers-4.4.0-22-generic/Makefile clean
> make -f /usr/src/linux-headers-4.4.0-22-generic/scripts/Makefile.clean
> obj=/home/ferruhy/development/dpdk/build/build/lib/librte_eal/linuxapp/kni
> ------------
> comma=,
> file
>   rm -rf
> /home/ferruhy/development/dpdk/build/build/lib/librte_eal/linuxapp/kni/.tmp_versions
>   rm -f
> /home/ferruhy/development/dpdk/build/build/lib/librte_eal/linuxapp/kni/Module.symvers
> == Clean lib/librte_eal/linuxapp/xen_dom0
> ...
> 

Error is related to the kernel version, in second call "comma"
definition comes from kernel makefiles.

Following commit causes comma to be defined:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=371fdc77af44f4cb32475fd499e1d912ccc30890

So this is valid issue for old kernels, and using "," directly looks OK.

> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by Ferruh Yigit <ferruh.yigit@intel.com>

  reply	other threads:[~2016-05-31 13:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-30 11:56 [PATCH] kni: fix use of undefined comma variable in makefile Olivier Matz
2016-05-30 15:49 ` Ferruh Yigit
2016-05-30 16:21   ` Olivier Matz
2016-05-30 16:46     ` Ferruh Yigit
2016-05-31 13:35       ` Ferruh Yigit [this message]
2016-05-31 19:12         ` Olivier MATZ
2016-06-07  8:32         ` 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=574D933C.2080507@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=olivier.matz@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.