Ticket UUID: | 1881216 | |||
Title: | VC2005 build still not quite right. | |||
Type: | Bug | Version: | None | |
Submitter: | kennykb | Created on: | 2008-01-28 15:54:59 | |
Subsystem: | 35. TclOO Package | Assigned To: | dkf | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2008-02-02 00:18:38 | |
Resolution: | Fixed | Closed By: | dkf | |
Closed on: | 2008-02-01 17:18:38 | |||
Description: |
The build for vc2005 still isn't quite right. I'm running the configurator from an 'msys' shell with mkdir `hostname` cd `hostname` CC=cl ../configure --prefix=d:/tcltest --with-tcl=d:/tcltest/lib --enable-threads The configurator finds (correctly) that a 'windres' command exists. But it winds up, somehow, using 'rc' in its place, producing a makefile that attempts to run 'rc' with command line options appropriate to 'windres'. I work around that with 'make RC=windres', and the build progresses somewhat further, but fails when it attempts to run 'mt'. The problem there is shell syntax; the semicolon that separates the DLL name from the resource number needs to be escaped. I trace that back to aclocal.m4, in the TEAX_VC_MANIFEST macro. A proposed patch is attached. The failing Makefile and config.log are also attached, as requested. | |||
User Comments: |
kennykb added on 2008-01-31 07:39:27:
Logged In: YES user_id=99768 Originator: YES With this evening's HEAD, the '-o' on the 'rc' should be '-fo'. Aside from that, everything looks to be building correctly. Also, it would be nice to add 'nologo' on that command; it would slightly reduce the dribble in the 'make' output. dkf added on 2008-01-30 22:33:44: Logged In: YES user_id=79902 Originator: NO Everything done except for the (trivial) bugfix in tclOOCall.c, which gets in the way of a number of changes in my sandboxes. kennykb added on 2008-01-30 08:53:15: File Added - 264238: Makefile.diffs Logged In: YES user_id=99768 Originator: YES Still not quite there. For starters, options beginning with '/' seem to get munged by either msys 'make' or the msys shell... but ones beginning with '-' are OK. I attach a set of diffs to the generated Makefile that take care of the problem in RCFLAGS and the '.c.obj' and '.rc.$(RES)' rules. With these changes, the 'make' is successful. The warning about mismatched const-ness at generic/tclOOCall.c:565 is still there. The reason that warnings are a major annoyance is that an --enable-symbols build on VC++ turns on "warnings treated as errors", which means that the compiler won't generate object code for the offending file. File Added: Makefile.diffs dkf added on 2008-01-29 21:20:42: Logged In: YES user_id=79902 Originator: NO Ugh, it seems that working out what to do about windres/rc needs to be done *after* TEA_CONFIG_CFLAGS as that unilaterally sets RC... kennykb added on 2008-01-28 23:01:40: Logged In: YES user_id=99768 Originator: YES Oh, also... once the Makefile is patched, there are two more things, which don't make the build fail but are nevertheless annoying: (1) Every 'cl' command generates: cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release (2) There is still one spot where we trip over VC++ obsessive-compulsive behaviour with respect to constness of function args: ../generic/tclOOCall.c(565) : warning C4028: formal parameter 3 different from declaration kennykb added on 2008-01-28 22:56:28: Logged In: YES user_id=99768 Originator: YES File Added: Makefile kennykb added on 2008-01-28 22:56:27: File Added - 264030: Makefile kennykb added on 2008-01-28 22:55:48: Logged In: YES user_id=99768 Originator: YES File Added: config.log kennykb added on 2008-01-28 22:55:46: File Added - 264029: config.log kennykb added on 2008-01-28 22:55:04: File Added - 264028: oo-aclocal.patch |