Some functions were not exported, and UUID API not even built on Windows for no compelling reason. This hasn't been an issue so far, because only static build is currently available on Windows, however: 1) it's better to have fewer differences between platforms; 2) enabling shared build is planned for the near future. I don't believe this patchset should be backported because it doesn't fix any actual issue for 20.11. Dmitry Kozlyuk (2): eal: remove Windows-specific list of common files eal/windows: fix export list lib/eal/common/meson.build | 63 +++++++++----------------------------- lib/eal/version.map | 32 +++++++++---------- 2 files changed, 31 insertions(+), 64 deletions(-) -- 2.29.3
The majority of common EAL sources that are built for all platforms were listed separately for Windows and for other OS. It seems that developers adding modules to EAL perceived this as if Windows supported only a limited subset of modules and only added new ones into another. Factor the truly common modules into a shared list, then extend it with modules supported by different platforms. When the two lists were created, UUID API implementation was removed from Windows build (apparently by mistake), then excluded from the export list for no reason other than not being built. Restore it. Fixes: df3ff6be2b33 ("eal: simplify meson build of common directory") Cc: thomas@monjalon.net Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> --- lib/eal/common/meson.build | 63 +++++++++----------------------------- lib/eal/version.map | 8 ++--- 2 files changed, 19 insertions(+), 52 deletions(-) diff --git a/lib/eal/common/meson.build b/lib/eal/common/meson.build index edfca77779..6d01b0f072 100644 --- a/lib/eal/common/meson.build +++ b/lib/eal/common/meson.build @@ -5,54 +5,16 @@ includes += include_directories('.') cflags += [ '-DABI_VERSION="@0@"'.format(abi_version) ] -if is_windows - sources += files( - 'eal_common_bus.c', - 'eal_common_class.c', - 'eal_common_config.c', - 'eal_common_debug.c', - 'eal_common_dev.c', - 'eal_common_devargs.c', - 'eal_common_dynmem.c', - 'eal_common_errno.c', - 'eal_common_fbarray.c', - 'eal_common_hexdump.c', - 'eal_common_launch.c', - 'eal_common_lcore.c', - 'eal_common_log.c', - 'eal_common_mcfg.c', - 'eal_common_memalloc.c', - 'eal_common_memory.c', - 'eal_common_memzone.c', - 'eal_common_options.c', - 'eal_common_string_fns.c', - 'eal_common_tailqs.c', - 'eal_common_thread.c', - 'eal_common_trace_points.c', - 'malloc_elem.c', - 'malloc_heap.c', - 'rte_malloc.c', - 'eal_common_timer.c', - 'rte_random.c', - 'rte_reciprocal.c', - 'rte_service.c', - 'rte_version.c', - ) - subdir_done() -endif - sources += files( 'eal_common_bus.c', - 'eal_common_cpuflags.c', 'eal_common_class.c', 'eal_common_config.c', 'eal_common_debug.c', - 'eal_common_devargs.c', 'eal_common_dev.c', + 'eal_common_devargs.c', 'eal_common_errno.c', 'eal_common_fbarray.c', 'eal_common_hexdump.c', - 'eal_common_hypervisor.c', 'eal_common_launch.c', 'eal_common_lcore.c', 'eal_common_log.c', @@ -61,28 +23,33 @@ sources += files( 'eal_common_memory.c', 'eal_common_memzone.c', 'eal_common_options.c', - 'eal_common_proc.c', 'eal_common_string_fns.c', 'eal_common_tailqs.c', 'eal_common_thread.c', 'eal_common_timer.c', - 'eal_common_trace.c', - 'eal_common_trace_ctf.c', 'eal_common_trace_points.c', - 'eal_common_trace_utils.c', 'eal_common_uuid.c', - 'hotplug_mp.c', 'malloc_elem.c', 'malloc_heap.c', - 'malloc_mp.c', - 'rte_keepalive.c', 'rte_malloc.c', 'rte_random.c', 'rte_reciprocal.c', 'rte_service.c', 'rte_version.c', ) - -if is_linux +if is_linux or is_windows sources += files('eal_common_dynmem.c') endif +if not is_windows + sources += files( + 'eal_common_cpuflags.c', + 'eal_common_hypervisor.c', + 'eal_common_proc.c', + 'eal_common_trace.c', + 'eal_common_trace_ctf.c', + 'eal_common_trace_utils.c', + 'hotplug_mp.c', + 'malloc_mp.c', + 'rte_keepalive.c', + ) +endif diff --git a/lib/eal/version.map b/lib/eal/version.map index beeb986adc..a40e4bc659 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -194,10 +194,10 @@ DPDK_22 { rte_thread_get_affinity; rte_thread_set_affinity; rte_thread_setname; - rte_uuid_compare; # WINDOWS_NO_EXPORT - rte_uuid_is_null; # WINDOWS_NO_EXPORT - rte_uuid_parse; # WINDOWS_NO_EXPORT - rte_uuid_unparse; # WINDOWS_NO_EXPORT + rte_uuid_compare; + rte_uuid_is_null; + rte_uuid_parse; + rte_uuid_unparse; rte_version; # WINDOWS_NO_EXPORT rte_vfio_clear_group; # WINDOWS_NO_EXPORT rte_vfio_container_create; # WINDOWS_NO_EXPORT -- 2.29.3
* Version and randomness API were not added to .def file by mistake, which is why they were later excluded from the export list. * Device API stubs were added to EAL but not exported. Fixes: edd66d57d55c ("eal/windows: add random function") Fixes: 3d2fcb0e0aec ("eal/windows: add device event stubs") Fixes: 5b637a848195 ("eal: fix querying DPDK version at runtime") Cc: pallavi.kadam@intel.com Cc: jizh@linux.microsoft.com Cc: bruce.richardson@intel.com Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> --- lib/eal/version.map | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/eal/version.map b/lib/eal/version.map index a40e4bc659..73474949d6 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -186,7 +186,7 @@ DPDK_22 { rte_socket_count; rte_socket_id; rte_socket_id_by_idx; - rte_srand; # WINDOWS_NO_EXPORT + rte_srand; rte_strerror; rte_strscpy; rte_strsplit; @@ -233,8 +233,8 @@ EXPERIMENTAL { # added in 18.05 rte_dev_event_callback_register; rte_dev_event_callback_unregister; - rte_dev_event_monitor_start; # WINDOWS_NO_EXPORT - rte_dev_event_monitor_stop; # WINDOWS_NO_EXPORT + rte_dev_event_monitor_start; + rte_dev_event_monitor_stop; rte_fbarray_attach; rte_fbarray_destroy; rte_fbarray_detach; @@ -287,8 +287,8 @@ EXPERIMENTAL { # added in 18.11 rte_delay_us_sleep; rte_dev_event_callback_process; - rte_dev_hotplug_handle_disable; # WINDOWS_NO_EXPORT - rte_dev_hotplug_handle_enable; # WINDOWS_NO_EXPORT + rte_dev_hotplug_handle_disable; + rte_dev_hotplug_handle_enable; rte_malloc_heap_create; rte_malloc_heap_destroy; rte_malloc_heap_get_socket; @@ -326,7 +326,7 @@ EXPERIMENTAL { rte_lcore_to_cpu_id; rte_mcfg_timer_lock; rte_mcfg_timer_unlock; - rte_rand_max; # WINDOWS_NO_EXPORT + rte_rand_max; # added in 19.11 rte_mcfg_get_single_file_segments; @@ -417,12 +417,12 @@ EXPERIMENTAL { rte_thread_key_delete; rte_thread_value_get; rte_thread_value_set; - rte_version_minor; # WINDOWS_NO_EXPORT - rte_version_month; # WINDOWS_NO_EXPORT - rte_version_prefix; # WINDOWS_NO_EXPORT - rte_version_release; # WINDOWS_NO_EXPORT - rte_version_suffix; # WINDOWS_NO_EXPORT - rte_version_year; # WINDOWS_NO_EXPORT + rte_version_minor; + rte_version_month; + rte_version_prefix; + rte_version_release; + rte_version_suffix; + rte_version_year; # added in 21.08 rte_power_monitor_multi; # WINDOWS_NO_EXPORT -- 2.29.3
On Sat, Aug 28, 2021 at 7:16 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
>
> The majority of common EAL sources that are built for all platforms were
> listed separately for Windows and for other OS. It seems that developers
> adding modules to EAL perceived this as if Windows supported
> only a limited subset of modules and only added new ones into another.
> Factor the truly common modules into a shared list,
> then extend it with modules supported by different platforms.
>
> When the two lists were created, UUID API implementation was removed
> from Windows build (apparently by mistake), then excluded from the
> export list for no reason other than not being built. Restore it.
>
> Fixes: df3ff6be2b33 ("eal: simplify meson build of common directory")
> Cc: thomas@monjalon.net
>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
LGTM, thanks.
Acked-by: William Tu <u9012063@gmail.com>
On Sat, Aug 28, 2021 at 7:16 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
>
> * Version and randomness API were not added to .def file by mistake,
> which is why they were later excluded from the export list.
> * Device API stubs were added to EAL but not exported.
>
> Fixes: edd66d57d55c ("eal/windows: add random function")
> Fixes: 3d2fcb0e0aec ("eal/windows: add device event stubs")
> Fixes: 5b637a848195 ("eal: fix querying DPDK version at runtime")
> Cc: pallavi.kadam@intel.com
> Cc: jizh@linux.microsoft.com
> Cc: bruce.richardson@intel.com
>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
LGTM, thanks.
Acked-by: William Tu <u9012063@gmail.com>
On 8/28/2021 7:16 PM, Dmitry Kozlyuk wrote:
> Some functions were not exported, and UUID API not even built on Windows
> for no compelling reason. This hasn't been an issue so far, because only
> static build is currently available on Windows, however:
> 1) it's better to have fewer differences between platforms;
> 2) enabling shared build is planned for the near future.
>
> I don't believe this patchset should be backported
> because it doesn't fix any actual issue for 20.11.
>
> Dmitry Kozlyuk (2):
> eal: remove Windows-specific list of common files
> eal/windows: fix export list
>
> lib/eal/common/meson.build | 63 +++++++++-----------------------------
> lib/eal/version.map | 32 +++++++++----------
> 2 files changed, 31 insertions(+), 64 deletions(-)
Acked-by: Ranjit Menon <ranjit.menon@intel.com
<mailto:ranjit.menon@intel.com>>
01/09/2021 21:35, Menon, Ranjit:
> On 8/28/2021 7:16 PM, Dmitry Kozlyuk wrote:
> > Some functions were not exported, and UUID API not even built on Windows
> > for no compelling reason. This hasn't been an issue so far, because only
> > static build is currently available on Windows, however:
> > 1) it's better to have fewer differences between platforms;
> > 2) enabling shared build is planned for the near future.
> >
> > I don't believe this patchset should be backported
> > because it doesn't fix any actual issue for 20.11.
> >
> > Dmitry Kozlyuk (2):
> > eal: remove Windows-specific list of common files
> > eal/windows: fix export list
> >
> Acked-by: Ranjit Menon <ranjit.menon@intel.com>
Applied, thanks.