01/12/2020 14:52, Dmitry Kozlyuk: > On Tue, 01 Dec 2020 14:18:53 +0100, Thomas Monjalon wrote: > > Hi, > > > > I'm hitting an issue with x86_64-w64-mingw32-gcc (GCC) 10.2.0: > > lib/librte_eal/windows/eal_memory.c:30:14: error: > > redeclaration of ‘enum MEM_EXTENDED_PARAMETER_TYPE’ > > and others: > > redeclaration of enumerator ‘MemExtendedParameterInvalidType’ > > redeclaration of enumerator ‘MemExtendedParameterAddressRequirements’ > > redeclaration of enumerator ‘MemExtendedParameterNumaNode’ > > redeclaration of enumerator ‘MemExtendedParameterPartitionHandle’ > > redeclaration of enumerator ‘MemExtendedParameterUserPhysicalHandle’ > > redeclaration of enumerator ‘MemExtendedParameterAttributeFlags’ > > redeclaration of enumerator ‘MemExtendedParameterMax’ > > redefinition of ‘struct MEM_EXTENDED_PARAMETER’ > > "MEM_EXTENDED_PARAMETER_TYPE_BITS" redefined > > > > I see in the code it should be avoided: > > > > /* MinGW-w64 headers lack VirtualAlloc2() in some distributions. > > * Provide a copy of definitions and code to load it dynamically. > > * Note: definitions are copied verbatim from Microsoft documentation > > * and don't follow DPDK code style. > > * > > * MEM_RESERVE_PLACEHOLDER being defined means VirtualAlloc2() is present > > too. > > */ > > #ifndef MEM_PRESERVE_PLACEHOLDER > > > > Does it mean using this flag is not true anymore in recent MinGW? > > I think the #ifndef test is incorrect, maybe MEM_PRESERVE_PLACEHOLDER is not > a macro in MinGW headers as it is in Windows SDK. > > What's your environment? > > I can't reproduce this with the latest MinGW-w64 8.0.0 for Windows from > https://sourceforge.net/projects/mingw-w64/files/, x86_64-win32-seh flavour > (GCC 8.1.0), and neither with MinGW-w64 6.0.0 (9.3.0) on NixOS.
I am using ArchLinux: mingw-w64-gcc 10.2.0-2 mingw-w64-headers 8.0.0-1 mingw-w64-crt 8.0.0-1