Issue 84084 - W32-4NT m238 (to-be?) fails in openssl
Summary: W32-4NT m238 (to-be?) fails in openssl
Status: CLOSED FIXED
Alias: None
Product: Build Tools
Classification: Code
Component: solenv (show other issues)
Version: current
Hardware: All Windows, all
: P2 Trivial (vote)
Target Milestone: OOo 2.4
Assignee: hjs
QA Contact: issues@tools
URL:
Keywords:
Depends on:
Blocks: 82202
  Show dependency tree
 
Reported: 2007-11-29 14:14 UTC by quetschke
Modified: 2007-12-21 15:22 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
remove compiler from CFLAGS define (4.55 KB, patch)
2007-11-30 15:39 UTC, hjs
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2007-11-29 14:14:30 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
Comment 1 quetschke 2007-11-29 14:27:04 UTC
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?!
Comment 2 hjs 2007-11-29 15:48:07 UTC
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 ;)
Comment 3 quetschke 2007-11-29 17:34:59 UTC
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.)
Comment 4 hjs 2007-11-30 15:39:06 UTC
Created attachment 50025 [details]
remove compiler from CFLAGS define
Comment 5 quetschke 2007-12-04 17:58:08 UTC
Committed, plus a small makefile patch to nowrapcmd1
Comment 6 hjs 2007-12-04 18:21:50 UTC
ok
Comment 7 hjs 2007-12-21 15:22:35 UTC
.