Apache OpenOffice (AOO) Bugzilla – Issue 84084
W32-4NT m238 (to-be?) fails in openssl
Last modified: 2007-12-21 15:22:35 UTC
The W32-4NT build fails with an error, see at the end of this entry or here: <http://tinderbox.go-oo.org/gunzip.cgi?tree=dmake412&brief-log=1196328630.24111#79473> The line numbers are misleading, cversion.c looks ok, but crypto\buildinf.h has \P \M \V \c in it, in a CFLAGS redefinition: #ifdef MK1MF_PLATFORM_VC_WIN32 /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */ #define CFLAGS "c:\PROGRA~1\MICROS~2.NET\Vc7\bin\cl.exe -MD -Ox -O2 -Ob2 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. -Fdout32dll -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE " #define PLATFORM "VC-WIN32" #define DATE "Thu Nov 29 09:28:20 2007" #endif This looks rather fishy. Errorlog: c:\PROGRA~1\MICROS~2.NET\Vc7\bin\cl.exe -Fo.\tmp32dll\cversion.obj -Iinc32 -Itmp32dll -MD -Ox -O2 -Ob2 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. -Fdout32dll -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE -D_WINDLL -DOPENSSL_BUILD_SHLIBCRYPTO -DMK1MF_BUILD -DMK1MF_PLATFORM_VC_WIN32 -c .\crypto\cversion.c cversion.c crypto\cversion.c(83) : error C2220: warning treated as error - no object file generated crypto\cversion.c(83) : warning C4129: 'P' : unrecognized character escape sequence crypto\cversion.c(83) : warning C4129: 'M' : unrecognized character escape sequence crypto\cversion.c(83) : warning C4129: 'V' : unrecognized character escape sequence crypto\cversion.c(83) : warning C4129: 'c' : unrecognized character escape sequence crypto\cversion.c(85) : warning C4129: 'P' : unrecognized character escape sequence crypto\cversion.c(85) : warning C4129: 'M' : unrecognized character escape sequence crypto\cversion.c(85) : warning C4129: 'V' : unrecognized character escape sequence crypto\cversion.c(85) : warning C4129: 'c' : unrecognized character escape sequence NMAKE : fatal error U1077: 'c:\PROGRA~1\MICROS~2.NET\Vc7\bin\cl.exe' : return code '0x2' Stop. '---* tg_merge.mk *---' dmake.exe: Error code 130, while making 'wntmsci10.pro\misc\build\so_built_openssl' ERROR: Error 65280 occurred while making /cygdrive/d/w1/tin_ws2/openssl
The buildinf.h is patched by util/mk1mf.pl that writes: #define CFLAGS "$cc $cflags" Beside the point that /s in $cc should be quoted in a C string the main question is what the $cc is doing there?!
seems to be the combination of windows native path and cygwin perl. hit the same problem while trying a merged nowrapcmd1/m238 tree. here CC must have \ delimiters for usage out of nmake (better resync nowrapcmd1...). commenting out that whole define works ;)
I think this particular issue is not a "windows native path and cygwin perl" issue because the compiler complains about the backslashes. I guess this just accidentally works in the Hamburg environment because your CC is not having a path in front of it, probably it is just CC=cl.exe? (I'm guessing here) It works for the current W32-bash builds (not nowrapcmd) because CC="guw.exe /cygdrive/.../cl.exe" - no backslashes. And it will definitely break somewhere for nowrapcmd1 - I'll fix this after the resync. I guess the best fix (without testing it yet) is to change #define CFLAGS "$cc $cflags" to #define CFLAGS "$cflags" in util/mk1mf.pl. Masterfix, if it doesn't break your 4nt build and it's not too late? (Or remove the define, as you say that works too.)
Created attachment 50025 [details] remove compiler from CFLAGS define
Committed, plus a small makefile patch to nowrapcmd1
ok
.