stnoonan / spnego-http-auth-nginx-module

SPNEGO HTTP Authentication Module for nginx
Other
275 stars 112 forks source link

64-bit Build Issue on Windows when Building into NGINX.exe #136

Open justdan23 opened 1 year ago

justdan23 commented 1 year ago

Discussed in https://github.com/stnoonan/spnego-http-auth-nginx-module/discussions/135

Originally posted by **justdan23** December 14, 2022 I'm trying to build NGINX using Visual Studio 2022 and MSYS2. I'm able to build all of the stock NGINX with OpenSSL, PCRE2, and Zip entirely with x64 for Windows.
However, after I built the KRB5 MIT SDK for Windows to create the SDK folder containing the gssapi/gssapi.h header file, when compiling this SPNEGO NGINX Module, I am running into an issue with the includes not properly picking up the definitions which should appear if the DEFINEs are in place for MINGW. It's as if it is thinking it is GCC when reaching this module's source code for inclusion in NGINX.exe?
Thoughts? ``` Microsoft (R) Program Maintenance Utility Version 14.34.31937.0 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\nmake.exe" -f objs/Makefile Microsoft (R) Program Maintenance Utility Version 14.34.31937.0 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -O2 -W4 -WX -nologo -MT -Zi -Fdobjs/nginx.pdb -I objs/lib/krb5/objs/include -DNO_SYS_TYPES_H -Yungx_config.h -Fpobjs/ngx_config.pch -I src/core -I src/event -I src/event/modules -I src/os/win32 -I objs/lib/pcre2/src/ -I objs/lib/openssl/openssl/include -I objs/lib/zlib -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream -Foobjs/addon/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.obj objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c ngx_http_auth_spnego_module.c C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(33): error C2061: syntax error: identifier '_off_t' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(37): error C2059: syntax error: '}' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(63): error C2061: syntax error: identifier '_off_t' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(64): error C2371: 'st_atime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(34): note: see declaration of 'st_atime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(65): error C2371: 'st_mtime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(35): note: see declaration of 'st_mtime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(66): error C2371: 'st_ctime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(36): note: see declaration of 'st_ctime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(67): error C2059: syntax error: '}' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(96): error C2061: syntax error: identifier '_off_t' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(97): error C2371: 'st_atime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(34): note: see declaration of 'st_atime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(98): error C2371: 'st_mtime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(35): note: see declaration of 'st_mtime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(99): error C2371: 'st_ctime': redefinition; different basic types C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(36): note: see declaration of 'st_ctime' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(100): error C2059: syntax error: '}' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(235): error C2027: use of undefined type 'stat' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(87): note: see declaration of 'stat' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(235): error C2027: use of undefined type '_stat64i32' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(54): note: see declaration of '_stat64i32' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(240): error C2027: use of undefined type 'stat' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(87): note: see declaration of 'stat' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(240): error C2027: use of undefined type '_stat64i32' C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys\stat.h(54): note: see declaration of '_stat64i32' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(63): error C2010: '.': unexpected in macro parameter list objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(443): warning C4459: declaration of 'shm_zone' hides global declaration objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(110): note: see declaration of 'shm_zone' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(643): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(683): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(689): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(704): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(768): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(775): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(791): error C2065: 'P_tmpdir': undeclared identifier objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(791): warning C4312: 'type cast': conversion from 'int' to 'const char *' of greater size objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(796): error C2065: 'P_tmpdir': undeclared identifier objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(900): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(907): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(922): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(930): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(940): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(958): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(979): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(991): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1003): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1013): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1025): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1058): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1071): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1183): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1189): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1196): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1222): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1228): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1272): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1289): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1311): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1317): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1378): warning C4013: 'setenv' undefined; assuming extern returning int objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1512): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1550): error C2059: syntax error: ')' objs/lib/spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c(1568): error C2059: syntax error: ')' NMAKE : fatal error U1077: '"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64\cl.EXE"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\nmake.exe"' : return code '0x2' Stop. ```