From 0b44b06b0544511bc22352dcff95a216f766f582 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Tue, 12 Apr 2022 11:41:13 +0100 Subject: [PATCH] Cygwin: Fix build with w32api 10.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > ../../../../src/winsup/cygwin/sec_auth.cc:1240:16: error: redefinition of ‘struct _MSV1_0_S4U_LOGON’ > 1240 | typedef struct _MSV1_0_S4U_LOGON > | ^~~~~~~~~~~~~~~~~ > In file included from ../../../../src/winsup/cygwin/ntsecapi.h:10, > from ../../../../src/winsup/cygwin/sec_auth.cc:13: > /usr/include/w32api/ntsecapi.h:1425:18: note: previous definition of ‘struct _MSV1_0_S4U_LOGON’ > 1425 | typedef struct _MSV1_0_S4U_LOGON { > | ^~~~~~~~~~~~~~~~~ > ../../../../src/winsup/cygwin/sec_auth.cc:1246:3: error: conflicting declaration ‘typedef int MSV1_0_S4U_LOGON’ > 1246 | } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; > | ^~~~~~~~~~~~~~~~ > In file included from ../../../../src/winsup/cygwin/ntsecapi.h:10, > from ../../../../src/winsup/cygwin/sec_auth.cc:13: > /usr/include/w32api/ntsecapi.h:1430:5: note: previous declaration as ‘typedef struct _MSV1_0_S4U_LOGON MSV1_0_S4U_LOGON’ > 1430 | } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; > | ^~~~~~~~~~~~~~~~ > ../../../../src/winsup/cygwin/sec_auth.cc:1246:22: error: conflicting declaration ‘typedef int* PMSV1_0_S4U_LOGON’ > 1246 | } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; > | ^~~~~~~~~~~~~~~~~ > In file included from ../../../../src/winsup/cygwin/ntsecapi.h:10, > from ../../../../src/winsup/cygwin/sec_auth.cc:13: > /usr/include/w32api/ntsecapi.h:1430:24: note: previous declaration as ‘typedef struct _MSV1_0_S4U_LOGON* PMSV1_0_S4U_LOGON’ > 1430 | } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; --- winsup/cygwin/sec_auth.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/sec_auth.cc b/winsup/cygwin/sec_auth.cc index 121d55e05..0e5aaeb0b 100644 --- a/winsup/cygwin/sec_auth.cc +++ b/winsup/cygwin/sec_auth.cc @@ -1232,8 +1232,9 @@ out: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* In Mingw-w64, MsV1_0S4ULogon and MSV1_0_S4U_LOGON are only defined - in ddk/ntifs.h. We can't include this. */ +/* In w32api prior to 10.0.0, MsV1_0S4ULogon and MSV1_0_S4U_LOGON are only + defined in ddk/ntifs.h, which we can't include. */ +#if (__MINGW64_VERSION_MAJOR < 10) #define MsV1_0S4ULogon ((MSV1_0_LOGON_SUBMIT_TYPE) 12) @@ -1248,6 +1249,8 @@ typedef struct _MSV1_0_S4U_LOGON /* Missing in Mingw-w64 */ #define KERB_S4U_LOGON_FLAG_IDENTITY 0x08 +#endif + /* If logon is true we need an impersonation token. Otherwise we just need an identification token, e. g. to fetch the group list. */ HANDLE