Message ID | 1438123707-26509-1-git-send-email-helin.zhang@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 0E34CC53C; Wed, 29 Jul 2015 00:48:38 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 69ADCE62 for <dev@dpdk.org>; Wed, 29 Jul 2015 00:48:35 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP; 28 Jul 2015 15:48:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,566,1432623600"; d="scan'208";a="531935824" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by FMSMGA003.fm.intel.com with ESMTP; 28 Jul 2015 15:48:33 -0700 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t6SMmVB8011200; Wed, 29 Jul 2015 06:48:31 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t6SMmT8D026545; Wed, 29 Jul 2015 06:48:31 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t6SMmTeb026541; Wed, 29 Jul 2015 06:48:29 +0800 From: Helin Zhang <helin.zhang@intel.com> To: dev@dpdk.org Date: Wed, 29 Jul 2015 06:48:27 +0800 Message-Id: <1438123707-26509-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 Subject: [dpdk-dev] [PATCH] eal: fix build X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Zhang, Helin
July 28, 2015, 10:48 p.m. UTC
It fixes the build error of implicit declaration of function.
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
---
lib/librte_eal/common/include/rte_pci.h | 11 +++++++++++
lib/librte_eal/linuxapp/eal/eal_pci.c | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)
Comments
2015-07-29 06:48, Helin Zhang:
> It fixes the build error of implicit declaration of function.
What is the error?
Please show the build log and describe the case when it happens
(compiler, version).
Hi Thomas It was just an implicit declaration of function, when set CONFIG_RTE_PCI_CONFIG=y, as follows. Nobody else cares about it. /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c: In function �rte_eal_pci_probe_one_driver’: /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: implicit declaration of function �pci_config_space_set’ [-Werror=implicit-function-declaration] pci_config_space_set(dev); ^ /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: nested extern declaration of �pci_config_space_set’ [-Werror=nested-externs] cc1: all warnings being treated as errors /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci.c:561:1: error: �pci_config_space_set’ defined but not used [-Werror=unused-function] pci_config_space_set(struct rte_pci_device *dev) ^ cc1: all warnings being treated as errors Regards, Helin > -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Wednesday, July 29, 2015 1:20 AM > To: Zhang, Helin > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > 2015-07-29 06:48, Helin Zhang: > > It fixes the build error of implicit declaration of function. > > What is the error? > Please show the build log and describe the case when it happens (compiler, > version).
On 29/07/2015 16:00, Zhang, Helin wrote: > Hi Thomas > > It was just an implicit declaration of function, when set CONFIG_RTE_PCI_CONFIG=y, as follows. Nobody else cares about it. > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c: In function �rte_eal_pci_probe_one_driver’: > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: implicit declaration of function �pci_config_space_set’ [-Werror=implicit-function-declaration] > pci_config_space_set(dev); > ^ > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: nested extern declaration of �pci_config_space_set’ [-Werror=nested-externs] > cc1: all warnings being treated as errors > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci.c:561:1: error: �pci_config_space_set’ defined but not used [-Werror=unused-function] > pci_config_space_set(struct rte_pci_device *dev) > ^ > cc1: all warnings being treated as errors > > Regards, > Helin > >> -----Original Message----- >> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] >> Sent: Wednesday, July 29, 2015 1:20 AM >> To: Zhang, Helin >> Cc: dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH] eal: fix build >> >> 2015-07-29 06:48, Helin Zhang: >>> It fixes the build error of implicit declaration of function. >> What is the error? >> Please show the build log and describe the case when it happens (compiler, >> version). Fixes: 4d4ebca4 ("pci: merge probing and closing functions for linux and bsd") The function rte_eal_pci_probe_one_driver, which calls pci_config_space_set, was moved to eal_common_pci.c, but pci_config_space_set was left in eal_pci.c with static specifier. Sergio
2015-07-29 15:00, Zhang, Helin: > Hi Thomas > > It was just an implicit declaration of function, when set > CONFIG_RTE_PCI_CONFIG=y, as follows. Nobody else cares about it. Why do we have this config option? Please remove these useless ifdef's. > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c: In function �rte_eal_pci_probe_one_driver’: > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: implicit declaration of function �pci_config_space_set’ [-Werror=implicit-function-declaration] > pci_config_space_set(dev); > ^ > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: nested extern declaration of �pci_config_space_set’ [-Werror=nested-externs] > cc1: all warnings being treated as errors > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci.c:561:1: error: �pci_config_space_set’ defined but not used [-Werror=unused-function] > pci_config_space_set(struct rte_pci_device *dev) > ^ > cc1: all warnings being treated as errors So I will change the title to: eal: fix build with pci config enabled and add this into the message: Build log: lib/librte_eal/common/eal_common_pci.c:188:4: error: implicit declaration of function pci_config_space_set > > -----Original Message----- > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > > Sent: Wednesday, July 29, 2015 1:20 AM > > To: Zhang, Helin > > Cc: dev@dpdk.org > > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > > > 2015-07-29 06:48, Helin Zhang: > > > It fixes the build error of implicit declaration of function. > > > > What is the error? > > Please show the build log and describe the case when it happens (compiler, > > version).
> -----Original Message----- > From: Gonzalez Monroy, Sergio > Sent: Wednesday, July 29, 2015 8:06 AM > To: Zhang, Helin > Cc: dev@dpdk.org; Thomas Monjalon > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > On 29/07/2015 16:00, Zhang, Helin wrote: > > Hi Thomas > > > > It was just an implicit declaration of function, when set > CONFIG_RTE_PCI_CONFIG=y, as follows. Nobody else cares about it. > > > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci. > c: In function �rte_eal_pci_probe_one_driver’: > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci. > c:188:4: error: implicit declaration of function �pci_config_space_set’ > [-Werror=implicit-function-declaration] > > pci_config_space_set(dev); > > ^ > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pc > > i.c:188:4: error: nested extern declaration of > > �pci_config_space_set’ [-Werror=nested-externs] > > cc1: all warnings being treated as errors > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci.c:561: > 1: error: �pci_config_space_set’ defined but not used > [-Werror=unused-function] > > pci_config_space_set(struct rte_pci_device *dev) > > ^ > > cc1: all warnings being treated as errors > > > > Regards, > > Helin > > > >> -----Original Message----- > >> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > >> Sent: Wednesday, July 29, 2015 1:20 AM > >> To: Zhang, Helin > >> Cc: dev@dpdk.org > >> Subject: Re: [dpdk-dev] [PATCH] eal: fix build > >> > >> 2015-07-29 06:48, Helin Zhang: > >>> It fixes the build error of implicit declaration of function. > >> What is the error? > >> Please show the build log and describe the case when it happens > >> (compiler, version). > Fixes: 4d4ebca4 ("pci: merge probing and closing functions for linux and > bsd") > > The function rte_eal_pci_probe_one_driver, which calls pci_config_space_set, > was moved to eal_common_pci.c, but pci_config_space_set was left in eal_pci.c > with static specifier. Yes, that's the root cause. I am just have a thought that we may need to move all of those three functions together into eal_common_pci.c, which can avoid exporting that function. Helin > > Sergio >
> -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Wednesday, July 29, 2015 8:09 AM > To: Zhang, Helin > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > 2015-07-29 15:00, Zhang, Helin: > > Hi Thomas > > > > It was just an implicit declaration of function, when set > > CONFIG_RTE_PCI_CONFIG=y, as follows. Nobody else cares about it. > > Why do we have this config option? > Please remove these useless ifdef's. > > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci. > c: In function �rte_eal_pci_probe_one_driver’: > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci. > c:188:4: error: implicit declaration of function �pci_config_space_set’ > [-Werror=implicit-function-declaration] > > pci_config_space_set(dev); > > ^ > > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pc > > i.c:188:4: error: nested extern declaration of > > �pci_config_space_set’ [-Werror=nested-externs] > > cc1: all warnings being treated as errors > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci > > .c:561:1: error: �pci_config_space_set’ defined but not used > > [-Werror=unused-function] pci_config_space_set(struct rte_pci_device > > *dev) ^ > > cc1: all warnings being treated as errors > > So I will change the title to: > eal: fix build with pci config enabled > > and add this into the message: > Build log: > lib/librte_eal/common/eal_common_pci.c:188:4: error: > implicit declaration of function pci_config_space_set OK. Please help to do it. Thank you very much! Regards, Helin > > > > > -----Original Message----- > > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > > > Sent: Wednesday, July 29, 2015 1:20 AM > > > To: Zhang, Helin > > > Cc: dev@dpdk.org > > > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > > > > > 2015-07-29 06:48, Helin Zhang: > > > > It fixes the build error of implicit declaration of function. > > > > > > What is the error? > > > Please show the build log and describe the case when it happens > > > (compiler, version). >
2015-07-29 15:09, Zhang, Helin: > From: Gonzalez Monroy, Sergio > > Fixes: 4d4ebca4 ("pci: merge probing and closing functions for linux and bsd") > > > > The function rte_eal_pci_probe_one_driver, which calls pci_config_space_set, > > was moved to eal_common_pci.c, but pci_config_space_set was left in eal_pci.c > > with static specifier. > > Yes, that's the root cause. > I am just have a thought that we may need to move all of those three functions > together into eal_common_pci.c, which can avoid exporting that function. No it is specific to Linux (implemented in igb_uio only). But it may be moved to eal_common if you remove the igb_uio patch and use the new functions to access to PCI config with UIO or VFIO: http://dpdk.org/browse/dpdk/commit/?id=632b2d1deeed This build fix will be applied for 2.1. It is expected the above rework will be done for 2.2. Thanks
> -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Wednesday, July 29, 2015 9:06 AM > To: Zhang, Helin > Cc: Gonzalez Monroy, Sergio; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] eal: fix build > > 2015-07-29 15:09, Zhang, Helin: > > From: Gonzalez Monroy, Sergio > > > Fixes: 4d4ebca4 ("pci: merge probing and closing functions for linux > > > and bsd") > > > > > > The function rte_eal_pci_probe_one_driver, which calls > > > pci_config_space_set, was moved to eal_common_pci.c, but > > > pci_config_space_set was left in eal_pci.c with static specifier. > > > > Yes, that's the root cause. > > I am just have a thought that we may need to move all of those three > > functions together into eal_common_pci.c, which can avoid exporting that > function. > > No it is specific to Linux (implemented in igb_uio only). > But it may be moved to eal_common if you remove the igb_uio patch and use > the new functions to access to PCI config with UIO or VFIO: > http://dpdk.org/browse/dpdk/commit/?id=632b2d1deeed Yes, I agree. It should be moved into i40e PMD only according to the user configurations. Regards, Helin > > This build fix will be applied for 2.1. > It is expected the above rework will be done for 2.2. > Thanks
2015-07-29 17:08, Thomas Monjalon: > 2015-07-29 15:00, Zhang, Helin: > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c: In function �rte_eal_pci_probe_one_driver’: > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: implicit declaration of function �pci_config_space_set’ [-Werror=implicit-function-declaration] > > pci_config_space_set(dev); > > ^ > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/common/eal_common_pci.c:188:4: error: nested extern declaration of �pci_config_space_set’ [-Werror=nested-externs] > > cc1: all warnings being treated as errors > > /home/hzhan75/r22/isg_cid-dpdk_org/lib/librte_eal/linuxapp/eal/eal_pci.c:561:1: error: �pci_config_space_set’ defined but not used [-Werror=unused-function] > > pci_config_space_set(struct rte_pci_device *dev) > > ^ > > cc1: all warnings being treated as errors > > So I will change the title to: > eal: fix build with pci config enabled > > and add this into the message: > Build log: > lib/librte_eal/common/eal_common_pci.c:188:4: error: > implicit declaration of function pci_config_space_set > > > > > 2015-07-29 06:48, Helin Zhang: > > > > It fixes the build error of implicit declaration of function. Applied, thanks
diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 34cafa6..3fb2d3a 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -487,6 +487,17 @@ int rte_eal_pci_read_config(const struct rte_pci_device *device, int rte_eal_pci_write_config(const struct rte_pci_device *device, const void *buf, size_t len, off_t offset); +#ifdef RTE_PCI_CONFIG +/** + * Set special config space registers for performance purpose. + * + * @param dev + * A pointer to a rte_pci_device structure describing the device + * to use + */ +void pci_config_space_set(struct rte_pci_device *dev); +#endif /* RTE_PCI_CONFIG */ + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index df21846..0e62f65 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -557,7 +557,7 @@ pci_config_max_read_request_size(struct rte_pci_device *dev) return 0; } -static void +void pci_config_space_set(struct rte_pci_device *dev) { if (rte_eal_process_type() != RTE_PROC_PRIMARY)