[dpdk-dev] Why rte_snprintf at all?

Richardson, Bruce bruce.richardson at intel.com
Tue Jun 24 00:53:39 CEST 2014


Hi Keith,

Will the deprecation warnings stop the build? I would assume so, yes. That would serve as incentive for doing a search-replace to remove the deprecated function. J

As for the #define, it's a quick fix, except that we end up having to keep it forever as the code using the function will never get changed to use rte_snprintf. Given it's just a one-line macro, it's probably not a big deal in this case, but I'd rather see us take the approach that after something has been flagged as deprecated for a certain amount of time e.g. 1 to 2 full release cycles, it is removed completely and deleted. Otherwise I worry about us having to maintain a bunch of stuff for legacy reasons, that really should be got rid of. We should not just remove something completely in a single release, but I think we need to have a way to remove things completely once the user has been given sufficient warning.

Regards,

/Bruce

From: Wiles, Roger Keith [mailto:keith.wiles at windriver.com]
Sent: Monday, June 23, 2014 3:46 PM
To: Richardson, Bruce
Cc: Rogers, Gerald; Stephen Hemminger; dev at dpdk.org
Subject: Re: [dpdk-dev] Why rte_snprintf at all?

Bruce,

Will the deprecated attribute stop the build as warns are converted to errors? Having warns as errors is a good idea IMO, as some warns will cause a problem in execution sometimes or portability.

One suggestion is we can ifdef out the code, but also place the deprecated attribute on the function. Then the #else side of the ifdef is the #define to use snprintf. This way if they enable the ifdef they must live with the problem of deprecation later. Does 1.7 not support the deprecated attribute, maybe that was your point. :-)

I see a lot of code using rte_snprintf and I hate to change all of the code, but it is a simple find/replace sed script.
It is up to you guys I was just suggesting a simple fix for this release instead of the next release.

Thanks
Keith

Keith Wiles, Principal Technologist with CTO office, Wind River
mobile 972-213-5533

[Powering 30 Years of Innovation]<http://www.windriver.com/announces/wr30/>

On Jun 23, 2014, at 5:34 PM, Richardson, Bruce <bruce.richardson at intel.com<mailto:bruce.richardson at intel.com>> wrote:


That could work, Keith.
However, I would suggest we make use of the gcc "deprecated" function attribute in 1.8 to flag it for future removal in a subsequent release. [Ref: https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html]. That's what the attribute is there for.

From: Wiles, Roger Keith [mailto:keith.wiles at windriver.com]
Sent: Monday, June 23, 2014 3:31 PM
To: Rogers, Gerald
Cc: Richardson, Bruce; Stephen Hemminger; dev at dpdk.org<mailto:dev at dpdk.org>
Subject: Re: [dpdk-dev] Why rte_snprintf at all?

Why not just convert it into a macro and ifdef out the code or remove it. This way it can we remove later or just kept for some backward compat reason.

#define rte_snprintf  snprintf

Keith Wiles, Principal Technologist with CTO office, Wind River
mobile 972-213-5533

[Powering 30 Years of Innovation]<http://www.windriver.com/announces/wr30/>

On Jun 23, 2014, at 5:25 PM, Rogers, Gerald <gerald.rogers at intel.com<mailto:gerald.rogers at intel.com>> wrote:



Bruce, Stephen,

It may be a duplicate, but people are likely using it.  I would assume
deprecate means don¹t remove, but put in a comment that says please don¹t
use and migrate your code away from it.

Thanks,

Gerald

On 6/23/14, 3:18 PM, "Richardson, Bruce" <bruce.richardson at intel.com<mailto:bruce.richardson at intel.com>>
wrote:



-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen Hemminger
Sent: Monday, June 23, 2014 10:16 AM
To: dev at dpdk.org<mailto:dev at dpdk.org>
Subject: [dpdk-dev] Why rte_snprintf at all?

Why does rte_snprintf exist? It seems like a misunderstanding or broken
implementation of snprintf in some other C library. For standard Glibc,
I get same result from rte_snprintf and snprintf for all inputs
including
boundary cases

It can indeed probably be deprecated in next release. Any objections?

/Bruce





More information about the dev mailing list