On 1/27/2020 2:41 PM, Thomas Monjalon wrote:
13/01/2020 22:55, Pallavi Kadam:
Modified \common\include\arch\x86\rte_vect.h
to include SSE4 header for Windows.
Adding dlfcn.h on Windows to support common code.
Adding eal_filesystem.h to support functions and
path defines for files and directories on Windows.
I don't see any relationship between these 3 items,
so I think they should be 3 separate patches.
Ok, will submit 3 separate patches in v6.
--- a/lib/librte_eal/common/include/arch/x86/rte_vect.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_vect.h
@@ -15,7 +15,9 @@
#include <rte_config.h>
#include "generic/rte_vect.h"
-#if (defined(__ICC) || (__GNUC__ == 4 && __GNUC_MINOR__ < 4))
+#if (defined(__ICC) || \
+ (defined(_WIN64)) || \
+ (__GNUC__ == 4 && __GNUC_MINOR__ < 4))
#include <smmintrin.h> /* SSE4 */
I trust you on this change :)
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/dlfcn.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _DLFCN_H_
+#define _DLFCN_H_
+
+/**
+ * This file is added to support common code in eal_common_options.c
+ * as Microsoft libc does not contain dlfcn.h. This may be removed
+ * in future releases.
+ */
+
+/* The windows port does not currently support dynamic loading of libraries,
+ * so fail these calls
+ */
+#define dlopen(lib, flag) (0)
+#define RTLD_NOW 0
+#define dlerror() ("Not supported!")
This is only for the function eal_plugins_init().
The plugin logic and directory search might be different on Windows.
I believe it would be better handled directly in eal_plugins_init().
For now, my advice is to not compile this function (and not call it
in Windows init of course):
int
eal_plugins_init(void)
{
#ifndef RTE_EXEC_ENV_WINDOWS
The right fix would be to move this "common" function in an UNIX-only file:
What about creating eal_unix_options.c file?
Could be in lib/librte_eal/unix/ directory?
Ok. For now will include #ifndef RTE_EXEC_ENV_WINDOWSin v6 and will start working on this new 'unix' directory to add all
unix based functions.
--- /dev/null
+++ b/lib/librte_eal/windows/eal/include/eal_filesystem.h
@@ -0,0 +1,99 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+/**
+ * @file
+ * Stores functions and path defines for files and directories
+ * on the filesystem for Windows, that are used by the Windows EAL.
+ */
[...]
+/** Function to read a single numeric value from a file on the filesystem.
+ * Used to read information from files on /sys
+ */
+int eal_parse_sysfs_value(const char *filename, unsigned long *val);
Given that sysfs is a Linux system, I guess you don't need this function at all.
Thanks, will remove this function in v6.