From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by dpdk.org (Postfix) with ESMTP id 763DC1CBEF for ; Fri, 6 Apr 2018 20:10:51 +0200 (CEST) Received: by mail-wm0-f68.google.com with SMTP id p9so5124972wmc.3 for ; Fri, 06 Apr 2018 11:10:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=7WiQ5hiw7oGtW2tTW09AJMsblKfiaBM15obM+RMP7zY=; b=HYHkQL2FJf0euEhOtHNLtHpIcB3xNNRNXyaj2lDJprftbXrpd0H39DTUBxfL9lSoza 1/etQhD9kPwRjdWMqIppIp0mRZbflTyPFgj2+zD7lVuRovq7lZX5O6hvfVQCrVCYLfzx rfhc4tkvlg3qz3bYpuqJ93gOhxhHXgIdD8Dg0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=7WiQ5hiw7oGtW2tTW09AJMsblKfiaBM15obM+RMP7zY=; b=HDJZy2ooBEUs3B5o5I2sGNBq4EzDOxIBcd5wTllHq4XT7bd2MBfiUbYtoi1+0MEbl5 7bysTOzip2bW9zySgC8au5G+AYAbWhZguCeb+7D8vegkQMahKyaUPhRTq/PBOI9mUR+q cDTs5XDxXkRZWTfZ3vH1M2Z2K17Hta8t/iofdEYlfm3eLBqfKQ0yJVuB0Jk4+M0yCSJC f7CIKNveGcdMa9KMe+ajUkH8oyZB7QpMJo6ejX3MM9Vqslxt2SJ8aLQTAp3nD5yckqb3 iGCKkit/ITnoROPOcr4x970sbVnvXuE6qYBNLnwIw7YEV4oOkSX661viMKoocCTfRyKc 9gDg== X-Gm-Message-State: ALQs6tDgeyqNSNvWtDd2vt8CaUYFr3LlklNkpRJY6e/sKBRztNbqCsPn yRTgGjDxzq4IltXbYEDgKf+f6WN4 X-Google-Smtp-Source: AIpwx4+jhzsha11AQB8iFCUJGgx+xVmoTiPTm2xQxblFWzO/Kw24prToL/BmJElkVNPd0szia0PJ2A== X-Received: by 10.80.174.142 with SMTP id e14mr7900299edd.201.1523038250774; Fri, 06 Apr 2018 11:10:50 -0700 (PDT) Received: from [10.136.13.65] ([192.19.224.250]) by smtp.gmail.com with ESMTPSA id x68sm5546330ede.25.2018.04.06.11.10.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Apr 2018 11:10:50 -0700 (PDT) To: Ajit Khaparde , Ferruh Yigit , dev@dpdk.org References: <20180321180629.58318-1-ajit.khaparde@broadcom.com> <20180321180629.58318-4-ajit.khaparde@broadcom.com> <11afc40e-bb2b-b58c-87a9-7b841ed5412a@intel.com> <779b8c49-9b3f-f4fa-167e-07bbb5572d66@broadcom.com> <0ac29513-9034-8904-6c25-4c388c80b749@intel.com> From: Scott Branden Message-ID: Date: Fri, 6 Apr 2018 11:10:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH 3/4] mk: allow kernel artifacts to be located in output directory X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Apr 2018 18:10:52 -0000 Hi Ferruh, Somehow I did not receive your other email so Ajit fowarded it to me.  So I am responding to it here. Sorry for the previous confusion:  RTE_KERNELDIR_OUT specifies the location of the output of the kernel artifacts, not the output of the DPDK build artifacts. Here is an example to use RTE_KERNELDIR_OUT: export ARCH=arm64 export CROSS_COMPILE=~/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-gnu- export CROSS=aarch64-linux-gnu- export RTE_KERNELDIR_OUT=~/test/linux-out export RTE_KERNELDIR=~/test/linux cd $RTE_KERNELDIR make defconfig O=$RTE_KERNELDIR_OUT make -j 8 O=$RTE_KERNELDIR_OUT cd ~/test/dpdk make config T=arm64-stingray-linuxapp-gcc make Note: With this example you will likely hit a few compile errors as latest dpdk has compile bugs with unused variables/type mismatches in the code. Regards,  Scott On 18-04-05 11:58 AM, Ajit Khaparde wrote: > Scott, are you looking at this? > > ---------- Forwarded message ---------- > From: *Ferruh Yigit* > > Date: Tue, Apr 3, 2018 at 7:18 AM > Subject: Re: [PATCH 3/4] mk: allow kernel artifacts to be located in > output directory > To: Scott Branden >, Ajit Khaparde > >, > dev@dpdk.org > > > On 3/30/2018 7:23 PM, Scott Branden wrote: > > Hi Ferruh, > > > > > > On 18-03-30 03:35 AM, Ferruh Yigit wrote: > >> On 3/21/2018 6:06 PM, Ajit Khaparde wrote: > >>> From: Scott Branden > > >>> > >>> Allow kernel artifacts to be located in output directory specific > >>> by RTE_KERNELDIR_OUT. > >> How to use this variable, I tried following but kernel modules are > still in same > >> place: > > export RTE_KERNELDIR and RTE_KERNELDIR_OUT and it works fine. > > RTE_KERNELDIR already exists in Makefile.  Are you able to override it? > > Please help me a little more, can you please list your commands? > > Before your patch, what I do: > > export RTE_KERNELDIR=~/development/linux/linux > make defconfig > make    <--- After this kernel modules in ./build/kmod/*.ko > make DESTDIR=/tmp/for-scott install > > kernel modules are installed into /tmp/for-scott/lib/modules/`uname > -r`/extra/dpdk/*.ko > > Here `uname -r` is wrong but your patch is not related this. > > I am using RTE_KERNELDIR a lot since I am compiling with various kernel > versions, not seen .ko files goes into source folder, what is your > command line? > > > > Or _after_ your patch: > export RTE_KERNELDIR=~/development/linux/linux > export RTE_KERNELDIR_OUT=/tmp/kmod > make defconfig > make    <--- After this kernel modules in ./build/kmod/*.ko > > Getting following build error: > /bin/sh: scripts/mod/modpost: No such file or directory > make[7]: *** [.../development/linux/linux/scripts/Makefile.modpost:92: > __modpost] Error 127 > make[6]: *** [.../development/linux/linux/Makefile:1558: modules] Error 2 > make[5]: *** [Makefile:146: sub-make] Error 2 > make[4]: *** [../mk/rte.module.mk:54 : > igb_uio.ko] Error 2 > > Can you please describe how this variable intended to be used? > > > >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh > >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh install > >> - make RTE_KERNELDIR_OUT=/tmp/kmod O=ferruh DESTDIR=/tmp/ferruh > modules_install > >> > >> /tmp/kmod not created. > >> > >> And what we are fixing here, what was wrong with old code? > > Old code puts the intermediate object files in the kernel source > > directory.  This doesn't work when building an external module in > > openembedded recipes.  We need the Makefile change to be able to able to > > specify the kernel and output directories separately. > >> > >>> If RTE_KERNELDIR_OUT not specified than > >>> source directory RTE_KERNEL is used. > >> ${RTE_KERNELDIR} is used as external Linux kernel source folder, > why we are want > >> to put artifacts into kernel source? > > I just kept the default behaviour the same as what it does today. > >> > >>> Signed-off-by: Scott Branden > > >>> Signed-off-by: Ajit Khaparde > > >>> --- > >>>   mk/rte.module.mk | 9 ++++++--- > >>>   1 file changed, 6 insertions(+), 3 deletions(-) > >>> > >>> diff --git a/mk/rte.module.mk > b/mk/rte.module.mk > >>> index 1ada528a0..e2e1af716 100644 > >>> --- a/mk/rte.module.mk > >>> +++ b/mk/rte.module.mk > >>> @@ -39,6 +39,9 @@ _postinstall: build > >>>   .PHONY: build > >>>   build: _postbuild > >>> > >>> +# Allow kernel artifacts to be located in a different location > that source > >>> +RTE_KERNELDIR_OUT ?= ${RTE_KERNELDIR} > >>> + > >>>   # Link all sources in build directory > >>>   %_link: FORCE > >>>     $(if $(call compare,$(notdir $*),$*),\ > >>> @@ -48,7 +51,7 @@ build: _postbuild > >>>   # build module > >>>   $(MODULE).ko: $(SRCS_LINKS) > >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs > $(SRCDIR)/Makefile . ; fi > >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ > >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ > >>>             CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0) > >>> > >>>   # install module in $(RTE_OUTPUT)/kmod > >>> @@ -59,7 +62,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko > >>> > >>>   # install module > >>>   modules_install: > >>> -   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ > >>> +   @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ > >>>             modules_install > >>> > >>>   .PHONY: clean > >>> @@ -69,7 +72,7 @@ clean: _postclean > >>>   .PHONY: doclean > >>>   doclean: > >>>     @if [ ! -f $(notdir Makefile) ]; then ln -nfs > $(SRCDIR)/Makefile . ; fi > >>> -   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) > clean > >>> +   $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) > O=$(RTE_KERNELDIR_OUT) clean > >>>     @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\ > >>>             if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir > $(FILE)) ; fi ;) > >>>     @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi > >>> > > Regards, > >   Scott > > > >