From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 97B9A2C33 for ; Mon, 30 May 2016 18:46:44 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP; 30 May 2016 09:46:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,390,1459839600"; d="scan'208";a="817819216" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.221.33]) ([10.237.221.33]) by orsmga003.jf.intel.com with ESMTP; 30 May 2016 09:46:42 -0700 To: Olivier Matz , dev@dpdk.org References: <1464609406-23152-1-git-send-email-olivier.matz@6wind.com> <574C6123.5090005@intel.com> <574C68A1.2090408@6wind.com> Cc: thomas.monjalon@6wind.com, helin.zhang@intel.com From: Ferruh Yigit Message-ID: <574C6E71.3090601@intel.com> Date: Mon, 30 May 2016 17:46:41 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <574C68A1.2090408@6wind.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH] kni: fix use of undefined comma variable in makefile X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 May 2016 16:46:45 -0000 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 ...