Tk Source Code

View Ticket
Login
Ticket UUID: 1ca3c8d9da01afa6a17fb0a27bf568c336297a30
Title: nmake build with OPTS=static
Type: Bug Version: 8.6
Submitter: jan.nijtmans Created on: 2024-01-03 12:51:48
Subsystem: 85. Win Build Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Important
Status: Closed Last Modified: 2024-01-04 17:07:31
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2024-01-04 17:07:31
Description: (text/x-fossil-wiki)
When building Tk with nmake using OPTS=static, the following problems are seen:

- With Tk 8.6, the build itself succeeds, but running bind.test times-out: [https://github.com/tcltk/tk/actions/runs/7383322436/job/20086600807]

- With Tk 8.7 (and probably 9.0 also), the build itself succeeds too, but the test-suite gives 83 test-failures related to cursors: [https://github.com/tcltk/tk/actions/runs/7394649635/job/20116355623]

e.g.:
<pre>
==== busy-3.7 tk busy cget unix FAILED
==== Contents of test case:

    tk busy cget .f -cursor

---- Test setup failed:
bad cursor spec "hand1"
---- errorInfo(setup): bad cursor spec "hand1"
    (processing "-cursor" option)
    invoked from within
"tk busy hold .f -cursor hand1"
    ("uplevel" body line 3)
    invoked from within
"uplevel 1 $setup"
---- errorCode(setup): TK VALUE CURSOR
==== busy-3.7 FAILED
</pre>

So it doesn't look like the nmake build with OPTS=static (TIP #477) is ready for production ....
User Comments: jan.nijtmans added on 2024-01-04 17:07:31: (text/x-fossil-wiki)
Found the main problem, it's fixed [1374b2d11dd5dfab|here]

You need to update Tcl too in order to make the fix actually work, since rules.vc is copied from Tcl if it has a higher or equal version-number. So, "rules.vc" needs to be updated in both Tcl and Tk.

Since this is a long-standing problem (already - at least - from the start of the TIP #477 implementation, 5 years ago), I don't think it's important enough to delay Tcl/Tk 9.0b1 for it. But .... that's for Don Porter to decide.

fvogel added on 2024-01-03 21:06:28: (text/x-fossil-wiki)
Even with [ff1a5283] I still get the FindResourceW panic.

fvogel added on 2024-01-03 21:01:19:
Sorry, please disregard my previous message. The panic is still here.

fvogel added on 2024-01-03 20:58:30: (text/x-fossil-wiki)
Works now with [c2833a28].

fvogel added on 2024-01-03 20:30:19: (text/x-fossil-wiki)
Not enough. When running the test suite:

<verbatim>
	link -nologo -machine:AMD64  -ltcg -release -opt:ref -opt:icf,3 -subsystem:windows -out:"C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tktest.exe" kernel32.lib advapi32.lib netapi32.lib gdi32.lib user32.lib userenv.lib "C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Release_AMD64_VC1938\tclstub86.lib" "C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Release_AMD64_VC1938\tcl86ts.lib"  -stack:2300000 C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\testMain.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkSquare.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkOldTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkWinTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tktest.res C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tkstub86.lib C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk86ts.lib
LINK : fatal error LNK1181: impossible d'ouvrir le fichier en entrée 'C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tktest.res'
NMAKE : fatal error U1077: 'link -nologo -machine:AMD64  -ltcg -release -opt:ref -opt:icf,3 -subsystem:windows -out:"C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tktest.exe" kernel32.lib advapi32.lib netapi32.lib gdi32.lib user32.lib userenv.lib "C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Release_AMD64_VC1938\tclstub86.lib" "C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Release_AMD64_VC1938\tcl86ts.lib"  -stack:2300000 C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\testMain.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkSquare.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkOldTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tkWinTest.obj C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk_ThreadedStatic\tktest.res C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tkstub86.lib C:\Users\francois\Documents\Development\tcltk-fossil\tk\win\Release_AMD64_VC1938\tk86ts.lib'á: code retour '0x49d'
Stop.
</verbatim>

jan.nijtmans added on 2024-01-03 15:54:55: (text/x-fossil-wiki)
So, possible fix [dc10eade|here]

jan.nijtmans added on 2024-01-03 15:53:20: (text/x-fossil-wiki)
So, possible fix [c10eadeeaadbf1a|here]

jan.nijtmans added on 2024-01-03 15:53:01: (text/x-fossil-wiki)
So, possible fix [c10eadeeaadbf1a|here]

fvogel added on 2024-01-03 15:30:17:
The timeout with 8.6 avrually is a panic (FindResourceW).