[newlib-cygwin/cygwin-3_3-branch] Cygwin: Fix build with w32api 10.0.0

Jon TURNEY jturney@sourceware.org
Thu Apr 28 13:22:27 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=251c823aba35d3c09e9f8d8942d0b3cea90bf216

commit 251c823aba35d3c09e9f8d8942d0b3cea90bf216
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Tue Apr 12 11:41:13 2022 +0100

    Cygwin: Fix build with w32api 10.0.0
    
    > ../../../../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;
    
    (cherry picked from commit 0b44b06b0544511bc22352dcff95a216f766f582)

Diff:
---
 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 83fb39bc5..9559096ee 100644
--- a/winsup/cygwin/sec_auth.cc
+++ b/winsup/cygwin/sec_auth.cc
@@ -1475,8 +1475,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)
 
@@ -1491,6 +1492,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


More information about the Cygwin-cvs mailing list