[dpdk-dev] [PATCH v5 3/9] eal: add windows compatible header files

Pallavi Kadam pallavi.kadam at intel.com
Wed Jan 29 00:34:01 CET 2020


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.

>
>


More information about the dev mailing list