MinGW GCC 12 shows an illegal pointer conversion when included in a pedantic module:
lib/eal/windows/include/pthread.h:137:41: error: ISO C forbids conversion of object pointer to function pointer type [-Werror=pedantic] 137 | hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc, | ^ Fixes: e8428a9d89f1 ("eal/windows: add some basic functions and macros") Cc: sta...@dpdk.org By using uintptr_t, the compiler is forced to accept the conversion. Signed-off-by: Thomas Monjalon <tho...@monjalon.net> Acked-by: Tyler Retzlaff <roret...@linux.microsoft.com> --- lib/eal/windows/include/pthread.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/eal/windows/include/pthread.h b/lib/eal/windows/include/pthread.h index 27fd2cca52..f7cf0e9ddf 100644 --- a/lib/eal/windows/include/pthread.h +++ b/lib/eal/windows/include/pthread.h @@ -134,7 +134,8 @@ pthread_create(void *threadid, const void *threadattr, void *threadfunc, { RTE_SET_USED(threadattr); HANDLE hThread; - hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc, + hThread = CreateThread(NULL, 0, + (LPTHREAD_START_ROUTINE)(uintptr_t)threadfunc, args, 0, (LPDWORD)threadid); if (hThread) { SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); -- 2.39.0