[dpdk-dev] [PATCH v3 1/4] eal: disable function versioning on Windows

Kinsella, Ray mdr at ashroe.eu
Tue Jul 7 09:57:00 CEST 2020



On 05/07/2020 21:00, Thomas Monjalon wrote:
> 05/07/2020 11:00, Thomas Monjalon:
>> 05/07/2020 10:51, Fady Bader:
>>> From: Thomas Monjalon <thomas at monjalon.net>
>>>> 05/07/2020 09:00, Fady Bader:
>>>>>> On 30/06/2020 11:49, Kinsella, Ray wrote:
>>>>>>> On 22/06/2020 12:55, Fady Bader wrote:
>>>>>>>> --- a/lib/librte_eal/include/rte_function_versioning.h
>>>>>>>> +++ b/lib/librte_eal/include/rte_function_versioning.h
>>>>>>>> @@ -11,6 +11,10 @@
>>>>>>>>  #error Use of function versioning disabled, is
>>>> "use_function_versioning=true"
>>>>>> in meson.build?
>>>>>>> Do we need a meson error/rule that catches if people explicitly
>>>>>>> try to enable
>>>>>> function_versioning.
>>>>>>> We don't want to just silently fail under such circumstances?
>>>>>>>
>>>>>>> Would something in lib/meson.build would work better?
>>>>>>>
>>>>>>> if use_function_versioning and target_machine.system == "Windows"
>>>>>>> 	// complain loudly ...
>>>>>>> endif
>>>>>>>
>>>>>
>>>>> I think this would be a better approach.
>>>>> But instead of checking if the use of function versioning is enabled
>>>>> under Windows and then complain, I think we should simply disable it
>>>>> from Windows in the meson.build file. Something like this:
>>>>>
>>>>> if target_machine.system == "Windows"
>>>>> 	use_function_versioning = false
>>>>> endif
>>>>
>>>> Did you try?
>>>>
>>>> If you disable function versioning, compilation will fail with the #error message
>>>> above, right?
>>>>
>>>
>>> Yes, the compilation fails, we can also change the rte_function_versioning.h
>>> code in order not to fail under Windows.
>>> What do you think ?
>>
>> Function versioning CANNOT be supported currently on Windows.
>> Function versioning macros are MANDATORY in some libraries.
>> That's why I think the only path is to have a specific
>> implementation of the function versioning macros for Windows.
> 
> After a closer look with Fady, the empty macros already exist
> for the static case.
> If disabling function versioning in shared case, the DLL is built
> with the object files compiled for the static library.
> Conclusion: disabling function versioning on Windows works
> (after disabling the error message).
> 

perfect, good work.
 


More information about the dev mailing list