tdbc::odbc

View Ticket
Login
Ticket Hash: 185c99634a6156df4d9602aaf09b1c2c165cde77
Title: MS-VS make: library name misses t in non-installed test for tdbc119t.dll
Status: Closed Type: Build_Problem
Severity: Minor Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2024-09-11 06:28:43
Version Found In: main
User Comments:
oehhar added on 2024-09-10 16:44:20:

Within the tcl8.6.15rc0 release tarball and using MS-VC6 compiler and 32 bit compile.

The "make test" failes due to a missing "t" in the library name of tdbc

When doing nmake -f Makefile.vc test without installation in TCL 8.6, the bundled package failes with the following log, as "tdbc119.dll" is searched without "t":

testing tdbcodbc against Jet
	 C:\test\tcl8.6.15rc0\tcl8.6.15\win\..\win\Release\tclsh86t.exe "C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win/../tests/all.tcl" -verbose bte  -load "package ifneeded tdbc::odbc 1.1.9  {source {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win/../library/tdbcodbc.tcl};load {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win/Release/tdbcodbc119t.dll} [string totitle tdbcodbc]}; package ifneeded tdbc 1.1.9  {source {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbc1.1.9/win/Release/tdbc.tcl};load {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbc1.1.9/win/Release/tdbc119.dll} Tdbc}"
Tests running in interp:  C:/test/tcl8.6.15rc0/tcl8.6.15/win/Release/tclsh86t.exe
Tests located in:  C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/tests
Tests running in:  C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win
Temporary files stored in C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win
Test files run in separate interpreters
Running tests that match:  *
Skipping test files that match:  l.*.test
Only running test files that match:  *.test
Tests began at Mon Sep 09 08:50:33 +0200 2024
tdbcodbc.test
Test file error: couldn't load library "C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbc1.1.9/win/Release/tdbc119.dll": this library or a dependent library could not be found in library path
    while executing
"load {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbc1.1.9/win/Release/tdbc119.dll} Tdbc"
    ("package ifneeded tdbc 1.1.9" script)
    invoked from within
"package require tdbc"
    (file "C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win/../library/tdbcodbc.tcl" line 13)
    invoked from within
"source {C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/win/../library/tdbcodbc.tcl}"
    ("package ifneeded tdbc::odbc 1.1.9" script)
    invoked from within
"package require tdbc::odbc"
    (file "C:/test/tcl8.6.15rc0/tcl8.6.15/pkgs/tdbcodbc1.1.9/tests/tdbcodbc.test" line 16)

The relevant line of the makefile is IMHO:

		package ifneeded tdbc $(TDBC_DOTVERSION) \
			{source {$(TDBC_BIN_DIR:\=/)/tdbc.tcl};load {$(TDBC_BIN_DIR:\=/)/$(TDBC_LIB_FILE)} Tdbc}"

The relevant reference "TDBC_LIB_FILE" is defined as:

tdbc$(TDBC_VERSION).dll
and should be
tdbc$(TDBC_VERSION)$(SUFX).dll


oehhar added on 2024-09-10 16:46:35:

Fixed by [41f854e866]. Closing.


oehhar added on 2024-09-11 06:28:43:

Added in mysql: https://core.tcl-lang.org/tdbcmysql/info/a744c8c421d61699 and Postgresql: https://core.tcl-lang.org/tdbcpostgres/info/76bf4c7feb6f3221