From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 1320758F4 for ; Mon, 6 Oct 2014 18:05:32 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP; 06 Oct 2014 09:12:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="396108314" Received: from bricha3-mobl.ger.corp.intel.com (HELO bricha3-mobl.ir.intel.com) ([10.243.20.23]) by FMSMGA003.fm.intel.com with SMTP; 06 Oct 2014 09:05:55 -0700 Received: by bricha3-mobl.ir.intel.com (sSMTP sendmail emulation); Mon, 06 Oct 2014 17:12:35 +0001 Date: Mon, 6 Oct 2014 17:12:35 +0100 From: Bruce Richardson To: Sergio Gonzalez Monroy Message-ID: <20141006161235.GA10236@BRICHA3-MOBL> References: <1412611022-8278-1-git-send-email-sergio.gonzalez.monroy@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1412611022-8278-1-git-send-email-sergio.gonzalez.monroy@intel.com> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.22 (2013-10-16) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] Pass CC option when building kernel modules 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, 06 Oct 2014 16:05:33 -0000 On Mon, Oct 06, 2014 at 04:57:02PM +0100, Sergio Gonzalez Monroy wrote: > At least on kernels 3.15 or newer, DPDK build is broken for CLANG target. > The issue is that the kernel build system sets the flags before including > DPDK makefile and therefore assumes the incorrect compiler. > > Signed-off-by: Sergio Gonzalez Monroy I can confirm that this patch fixes the clang compile for me on Fedora 20 with kernel 3.16.3-200.fc20.x86_64. Acked-by: Bruce Richardson > --- > mk/rte.module.mk | 2 +- > mk/target/generic/rte.vars.mk | 2 ++ > mk/toolchain/clang/rte.vars.mk | 5 +---- > mk/toolchain/gcc/rte.vars.mk | 1 + > mk/toolchain/icc/rte.vars.mk | 5 +---- > 5 files changed, 6 insertions(+), 9 deletions(-) > > diff --git a/mk/rte.module.mk b/mk/rte.module.mk > index c4ca3fd..41c0d0f 100644 > --- a/mk/rte.module.mk > +++ b/mk/rte.module.mk > @@ -78,7 +78,7 @@ build: _postbuild > $(MODULE).ko: $(SRCS_LINKS) > @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi > @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ > - CROSS_COMPILE=$(CROSS) > + CC=$(KERNELCC) CROSS_COMPILE=$(CROSS) > > # install module in $(RTE_OUTPUT)/kmod > $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko > diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk > index 6020f20..74ff771 100644 > --- a/mk/target/generic/rte.vars.mk > +++ b/mk/target/generic/rte.vars.mk > @@ -149,4 +149,6 @@ endif > export CFLAGS > export LDFLAGS > > +else # ! ifeq ($(KERNELRELEASE),) > +CC = $(KERNELCC) > endif > diff --git a/mk/toolchain/clang/rte.vars.mk b/mk/toolchain/clang/rte.vars.mk > index ee4f451..40cb389 100644 > --- a/mk/toolchain/clang/rte.vars.mk > +++ b/mk/toolchain/clang/rte.vars.mk > @@ -38,11 +38,8 @@ > # - define TOOLCHAIN_ASFLAGS variable (overriden by cmdline value) > # > > -ifeq ($(KERNELRELEASE),) > CC = $(CROSS)clang > -else > -CC = $(CROSS)gcc > -endif > +KERNELCC = $(CROSS)gcc > CPP = $(CROSS)cpp > # for now, we don't use as but nasm. > # AS = $(CROSS)as > diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk > index 262ebdf..993eb26 100644 > --- a/mk/toolchain/gcc/rte.vars.mk > +++ b/mk/toolchain/gcc/rte.vars.mk > @@ -39,6 +39,7 @@ > # > > CC = $(CROSS)gcc > +KERNELCC = $(CROSS)gcc > CPP = $(CROSS)cpp > # for now, we don't use as but nasm. > # AS = $(CROSS)as > diff --git a/mk/toolchain/icc/rte.vars.mk b/mk/toolchain/icc/rte.vars.mk > index 612370d..f03a2a2 100644 > --- a/mk/toolchain/icc/rte.vars.mk > +++ b/mk/toolchain/icc/rte.vars.mk > @@ -41,11 +41,8 @@ > # Warning: we do not use CROSS environment variable as icc is mainly a > # x86->x86 compiler > > -ifeq ($(KERNELRELEASE),) > CC = icc > -else > -CC = gcc > -endif > +KERNELCC = gcc > CPP = cpp > AS = nasm > AR = ar > -- > 1.9.3 >