winbase.h shouldn't be included when compiling ntdll, as it is the header for kernel32.dll.
The attached patch removes winbase.h from the server call headers, exposing a number of dependency problems in ntdll.
wine_server_call_err seems to be misplaced in wine/server.h as it uses kernel32.SetLastError(), and it is the only function which requires winebase.h to be included. Perhaps it should be converted to a macro or only defined when winbase.h is already included, as I have done in this patch?
Mike