https://bugs.winehq.org/show_bug.cgi?id=54918
Bug ID: 54918 Summary: compiling nvcuda fails with threadpoolapiset.h:36:55: error: expected declaration specifiers before ‘__WINE_DEALLOC’ Product: Wine Version: 8.7 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winelib Assignee: wine-bugs@winehq.org Reporter: alois.schloegl@gmail.com Distribution: ---
Created attachment 74435 --> https://bugs.winehq.org/attachment.cgi?id=74435 error log trying to compile nvcuda
Trying to compile nvcuda [1] for wine/8.7 compiled from source using Shared-WoW64 [2] on Debian 11, fails with
/nfs/scistore07/clustersw/debian/bullseye/wine/8.7/include/wine/windows/threadpoolapiset.h: In function ‘CreateThreadpool’: /nfs/scistore07/clustersw/debian/bullseye/wine/8.7/include/wine/windows/threadpoolapiset.h:36:55: error: expected declaration specifiers before ‘__WINE_DEALLOC’ 36 | WINBASEAPI TP_POOL* WINAPI CreateThreadpool(void*) __WINE_DEALLOC(CloseThreadpool); | ^~~~~~~~~~~~~~ In file included from ../../../../nfs/scistore16/jonasgrp/schloegl/src/nvcuda/include/winnt.h:25, from /nfs/scistore07/clustersw/debian/bullseye/wine/8.7/include/wine/windows/windef.h:290, from ../../../../nfs/scistore16/jonasgrp/schloegl/src/nvcuda/dlls/nvcuda/internal.c:26: ../../../../nfs/scistore16/jonasgrp/schloegl/src/nvcuda/include/winbase.h:32:20: error: expected declaration specifiers before ‘__attribute__’ 32 | #define WINBASEAPI DECLSPEC_IMPORT | ^~~~~~~~~~~~~~~
The full log is attached.
I'm not sure whether this is an issue in winelib or nvcuda, but the the file wine/8.7/include/wine/windows/threadpoolapiset.h comes from wine, and seems strange to me, so I report this here. Let me know if this is not suitable.
[1] https://github.com/SveSop/nvcuda [2] https://wiki.winehq.org/Building_Wine#Shared_WoW64
https://bugs.winehq.org/show_bug.cgi?id=54918
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com
--- Comment #1 from Eric Pouech eric.pouech@gmail.com --- Hi
The included .h files look strange, to say the least: - winbase.h is gotten fom nvcuda directory - windef.h is gotten from wine directory - winnt.h is gotten from nvcuda directory - threadpoolapiset.h is gotten from wine directory
One could blame wine's threadpoolapiset.h no to load winnt.h (which shall provide the __WINE_DEALLOC macro), but this wouldn't solve the fact that nvcuda's winnt.h is loaded instead of wine's.
So this looks more like a packaging issue in [1] (or not being ready to cope with latest Wine). NB: it's stated to be done with Wine Staging (and not Wine).
So it looks like you're trying to do something which is not supported. I can advise to 1) retry with Wine Staging, 2) open a ticket with [1] if it still doesn't work.
https://bugs.winehq.org/show_bug.cgi?id=54918
Alois Schlögl alois.schloegl@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #2 from Alois Schlögl alois.schloegl@gmail.com --- Thanks for the insight an the value explanation.
Indeed, when removing nvcuda/include/winnt.h, nvcuda compiles just fine.
https://bugs.winehq.org/show_bug.cgi?id=54918
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.8.