From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 376945683 for ; Wed, 4 Mar 2015 11:22:39 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 04 Mar 2015 02:20:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,686,1418112000"; d="scan'208";a="535887405" Received: from bricha3-mobl3.ger.corp.intel.com ([10.243.20.24]) by orsmga003.jf.intel.com with SMTP; 04 Mar 2015 02:22:31 -0800 Received: by (sSMTP sendmail emulation); Wed, 04 Mar 2015 10:22:34 +0025 Date: Wed, 4 Mar 2015 10:22:34 +0000 From: Bruce Richardson To: Thomas Monjalon Message-ID: <20150304102234.GD1468@bricha3-MOBL3> References: <1425400717-24322-1-git-send-email-bruce.richardson@intel.com> <6979759.vFaJhNqs1F@xps13> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6979759.vFaJhNqs1F@xps13> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] ring: cleanup file-local macros at end-of-file 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: Wed, 04 Mar 2015 10:22:39 -0000 On Tue, Mar 03, 2015 at 10:03:45PM +0100, Thomas Monjalon wrote: > 2015-03-03 16:38, Bruce Richardson: > > The ENQUEUE_PTRS and DEQUEUE_PTRS macros defined in rte_ring.h are > > not meant to be global and are not prefixed with the RTE_ prefix. > > Therefore undef the macros at end of file to avoid pollution of the > > global namespace, in case ends apps end up wanting to reuse those names. > > > > Signed-off-by: Bruce Richardson > > --- > > lib/librte_ring/rte_ring.h | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h > > index bdf69b7..0d35648 100644 > > --- a/lib/librte_ring/rte_ring.h > > +++ b/lib/librte_ring/rte_ring.h > > @@ -1232,6 +1232,10 @@ rte_ring_dequeue_burst(struct rte_ring *r, void **obj_table, unsigned n) > > return rte_ring_mc_dequeue_burst(r, obj_table, n); > > } > > > > +/* undef un-prefixed macros which are local to this file */ > > +#undef ENQUEUE_PTRS > > +#undef DEQUEUE_PTRS > > + > > Thanks for trying to clean-up things. > Note that if an application is using this macro name, it will be destroyed > when including rte_ring.h. > Globally, DPDK namespace is awful and I hope we will be able to improve it. > Only if they are defining such a macro before including rte_ring.h, which I would expect to be an edge case. Also, in such a case, the compiler/preprocessor will give an error at the duplicate macro definition stage, and the simple fix is to reorder the header file inclusion to avoid problems i.e. no changing of dpdk required. I suppose a better fix to go along with this is to RTE-prefix the macros. I'll see about doing a V2. /Bruce