[dpdk-dev] build failure with MinGW GCC 10.2

Thomas Monjalon thomas at monjalon.net
Tue Dec 1 15:05:33 CET 2020


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





More information about the dev mailing list