[PATCH] eal/windows: fix mingw build

Bruce Richardson bruce.richardson at intel.com
Wed Nov 22 17:32:28 CET 2023


When compiling with mingw on Ubuntu 23.10, I get the following compiler
error:

../../lib/eal/windows/eal_memory.c:77: error: "MEM_REPLACE_PLACEHOLDER" redefined [-Werror]
   77 | #define MEM_REPLACE_PLACEHOLDER   0x00004000
      |
In file included from /usr/share/mingw-w64/include/minwindef.h:163,
                 from /usr/share/mingw-w64/include/windef.h:9,
                 from /usr/share/mingw-w64/include/windows.h:69,
                 from ../../lib/eal/windows/include/rte_windows.h:32,
                 from ../../lib/eal/windows/include/rte_os_shim.h:9,
                 from ../../lib/eal/common/eal_internal_cfg.h:14,
                 from ../../lib/eal/windows/eal_memory.c:11:
/usr/share/mingw-w64/include/winnt.h:5710: note: this is the location of the previous definition
 5710 | #define MEM_REPLACE_PLACEHOLDER 0x4000

and a similar error for MEM_RESERVE_PLACEHOLDER. These errors can be
fixed by wrapping the two defines in #ifndef .. #endif blocks.

Fixes: 2a5d547a4a9b ("eal/windows: implement basic memory management")
Cc: dmitry.kozliuk at gmail.com
Cc: stable at dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
 lib/eal/windows/eal_memory.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/eal/windows/eal_memory.c b/lib/eal/windows/eal_memory.c
index 215d768e2c..64598745de 100644
--- a/lib/eal/windows/eal_memory.c
+++ b/lib/eal/windows/eal_memory.c
@@ -74,8 +74,13 @@ static VirtualAlloc2_type VirtualAlloc2_ptr;
 
 #define MEM_COALESCE_PLACEHOLDERS 0x00000001
 #define MEM_PRESERVE_PLACEHOLDER  0x00000002
+
+#ifndef MEM_REPLACE_PLACEHOLDER
 #define MEM_REPLACE_PLACEHOLDER   0x00004000
+#endif
+#ifndef MEM_RESERVE_PLACEHOLDER
 #define MEM_RESERVE_PLACEHOLDER   0x00040000
+#endif
 
 int
 eal_mem_win32api_init(void)
-- 
2.40.1



More information about the stable mailing list