[dpdk-dev] [PATCH v4 25/27] eal: mark old naming as deprecated

Burakov, Anatoly anatoly.burakov at intel.com
Mon Jul 20 14:32:27 CEST 2020


On 18-Jul-20 3:22 AM, Stephen Hemminger wrote:
> On Fri, 17 Jul 2020 16:21:37 +0100
> "Burakov, Anatoly" <anatoly.burakov at intel.com> wrote:
> 
>> On 16-Jul-20 11:04 PM, Stephen Hemminger wrote:
>>> On Thu, 16 Jul 2020 14:41:41 +0100
>>> "Burakov, Anatoly" <anatoly.burakov at intel.com> wrote:
>>>    
>>>> On 15-Jul-20 9:29 PM, Stephen Hemminger wrote:
>>>>> On Wed, 15 Jul 2020 14:28:17 +0100
>>>>> "Burakov, Anatoly" <anatoly.burakov at intel.com> wrote:
>>>>>       
>>>>>>> -#define SKIP_MASTER	SKIP_INITIAL
>>>>>>> -#define CALL_MASTER	CALL_INITIAL
>>>>>>> +#define SKIP_MASTER _Pragma("GCC warning \"'SKIP_MASTER' is deprecated\"") SKIP_INITIAL
>>>>>>> +#define CALL_MASTER _Pragma("GCC warning \"'CALL_MASTER' is deprecated\"") CALL_INITIAL
>>>>>>
>>>>>> Presumably this is a generic header, should we introduce GCC-specific
>>>>>> things there?
>>>>>
>>>>> It works with Clang as well. Likely ICC but don't have that.
>>>>>       
>>>>
>>>> What about MSVC?
>>>>   
>>>
>>> _Pragma is C99 standard so MSVC know it.
>>> MSVC should ignore any pragman it doesn't understand.
>>>
>>> There is a better pragma for deprecating keywords in MSVC, but GCC and Clang don't
>>> understand it.
>>>    
>>
>> Deprecating macros sounds like something we might want to do in the
>> future, can't we put some macro into rte_common.h to address this? e.g.
>> something like
>>
>> #ifdef MSVC
>> #define rte_deprecated_macro _msvc_pragma_whatever()
>> #else
>> #define rte_deprecated_macro _Pragma("GCC warning ...")
>> #endif
>>
>> and use this macro here?
> 
> It gets hard to do macro in a macro,
> 

I don't have a strong opinion on this, but IMO it's certainly better 
than having a compiler-specific things in an API header file :)

-- 
Thanks,
Anatoly


More information about the dev mailing list