05/07/2020 11:00, Thomas Monjalon: > 05/07/2020 10:51, Fady Bader: > > From: Thomas Monjalon <tho...@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).