[PATCH 1/2] Cygwin: Fix build with w32api 10.0.0
Jon Turney
jon.turney@dronecode.org.uk
Tue Apr 12 17:32:09 GMT 2022
> ../../../../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
--
2.35.1
More information about the Cygwin-patches
mailing list