View Ticket
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Ticket UUID: 2ca1f6da0dca4a33d57720a2eb9bb0992415819e
Title: Windows compilation in pkgs fails when using msys/configure
Type: Bug Version: 8.6.4
Submitter: anonymous Created on: 2015-04-11 20:05:22
Subsystem: 53. Configuration and Build Tools Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Open Last Modified: 2016-09-01 16:11:53
Resolution: Fixed Closed By: nobody
    Closed on:
Description:
Using msys and Visual Studio 2013 on Windows, building tcl 8.6.4 fails in the DBC related packages subdirs due to a superfluous ADD_MANIFEST macro in the Makefiles.
As far as I can tell the manifest related stuff is already taken care of in the *LIBS macros, so the ADD_MANIFEST macros can go away.

Error messages and proposed patches below.  The patches simply remove the ADD_MANIFEST macro from the Makefiles in the dbc-related pkgs subdirs.
R'

# link -dll -nologo  "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/tclstub86.lib" -release -out:tdbc103.dll tdbc.obj tdbcStubInit.obj tdbcTokenize.obj ; if test -f tdbc103.dll.manifest ; then mt.exe -nologo -manifest tdbc103.dll.manifest -outputresource:tdbc103.dll\;2 ; fi 
#    Bibliothek "tdbc103.lib" und Objekt "tdbc103.exp" werden erstellt.
# mt -nologo -manifest tdbc103.dll.manifest -outputresource:tdbc103.dll\;2
# 
# tdbc103.dll.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden.
# make[1]: *** [tdbc103.dll] Error 31
# make[1]: Leaving directory `/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1

--- tcl8.6.4/pkgs/tdbc1.0.3/Makefile.in~	2015-03-06 18:30:21 +0000
+++ tcl8.6.4/pkgs/tdbc1.0.3/Makefile.in	2015-04-11 19:46:25 +0000
@@ -106,7 +106,6 @@
 MAKE_SHARED_LIB	= @MAKE_SHARED_LIB@
 MAKE_STATIC_LIB	= @MAKE_STATIC_LIB@
 MAKE_STUB_LIB	= @MAKE_STUB_LIB@
-ADD_MANIFEST    = @ADD_MANIFEST@
 OBJEXT		= @OBJEXT@
 RANLIB		= @RANLIB@
 RANLIB_STUB	= @RANLIB_STUB@
@@ -267,7 +266,6 @@
 $(PKG_LIB_FILE): $(PKG_OBJECTS)
 	-rm -f $(PKG_LIB_FILE)
 	${MAKE_LIB}
-	$(ADD_MANIFEST)
 	$(RANLIB) $(PKG_LIB_FILE)
 
 $(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS)

Diff finished.  Sat Apr 11 21:46:30 2015


# link -dll -nologo "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib"  "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/tclstub86.lib" -release -out:tdbcmysql103.dll tdbcmysql.obj mysqlStubInit.obj ; if test -f tdbcmysql103.dll.manifest ; then mt.exe -nologo -manifest tdbcmysql103.dll.manifest -outputresource:tdbcmysql103.dll\;2 ; fi 
# LINK : fatal error LNK1181: Eingabedatei "c:/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" kann nicht geoeffnet werden.
# mt -nologo -manifest tdbcmysql103.dll.manifest -outputresource:tdbcmysql103.dll\;2
# 
# tdbcmysql103.dll.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden.
# make[1]: *** [tdbcmysql103.dll] Error 31

--- tcl8.6.4/pkgs/tdbcmysql1.0.3/Makefile.in~	2015-03-06 18:33:24 +0000
+++ tcl8.6.4/pkgs/tdbcmysql1.0.3/Makefile.in	2015-04-11 19:48:00 +0000
@@ -102,7 +102,6 @@
 MAKE_SHARED_LIB	= @MAKE_SHARED_LIB@
 MAKE_STATIC_LIB	= @MAKE_STATIC_LIB@
 MAKE_STUB_LIB	= @MAKE_STUB_LIB@
-ADD_MANIFEST    = @ADD_MANIFEST@
 OBJEXT		= @OBJEXT@
 RANLIB		= @RANLIB@
 RANLIB_STUB	= @RANLIB_STUB@
@@ -276,7 +275,6 @@
 $(PKG_LIB_FILE): $(PKG_OBJECTS)
 	-rm -f $(PKG_LIB_FILE)
 	${MAKE_LIB}
-	$(ADD_MANIFEST)
 	$(RANLIB) $(PKG_LIB_FILE)
 
 #========================================================================

Diff finished.  Sat Apr 11 21:48:03 2015

# link -dll -nologo "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib"  "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/tclstub86.lib" -release -out:tdbcodbc103.dll tdbcodbc.obj odbcStubInit.obj ; if test -f tdbcodbc103.dll.manifest ; then mt.exe -nologo -manifest tdbcodbc103.dll.manifest -outputresource:tdbcodbc103.dll\;2 ; fi 
# LINK : fatal error LNK1181: Eingabedatei "c:/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" kann nicht geffnet werden.
# mt -nologo -manifest tdbcodbc103.dll.manifest -outputresource:tdbcodbc103.dll\;2

# tdbcodbc103.dll.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden.
# make[1]: *** [tdbcodbc103.dll] Error 31

--- tcl8.6.4/pkgs/tdbcodbc1.0.3/Makefile.in~	2015-03-06 18:35:10 +0000
+++ tcl8.6.4/pkgs/tdbcodbc1.0.3/Makefile.in	2015-04-11 19:50:15 +0000
@@ -95,7 +95,6 @@
 MAKE_SHARED_LIB	= @MAKE_SHARED_LIB@
 MAKE_STATIC_LIB	= @MAKE_STATIC_LIB@
 MAKE_STUB_LIB	= @MAKE_STUB_LIB@
-ADD_MANIFEST    = @ADD_MANIFEST@
 OBJEXT		= @OBJEXT@
 RANLIB		= @RANLIB@
 RANLIB_STUB	= @RANLIB_STUB@
@@ -293,7 +292,6 @@
 $(PKG_LIB_FILE): $(PKG_OBJECTS)
 	-rm -f $(PKG_LIB_FILE)
 	${MAKE_LIB}
-	$(ADD_MANIFEST)
 	$(RANLIB) $(PKG_LIB_FILE)
 
 #========================================================================

Diff finished.  Sat Apr 11 21:50:21 2015

# link -dll -nologo "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" -lws2_32  "/c/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/tclstub86.lib" -release -out:tdbcpostgres103.dll tdbcpostgres.obj pqStubInit.obj ; if test -f tdbcpostgres103.dll.manifest ; then mt.exe -nologo -manifest tdbcpostgres103.dll.manifest -outputresource:tdbcpostgres103.dll\;2 ; fi 
# LINK : warning LNK4044: Nicht erkannte Option /lws2_32; wird ignoriert.
# LINK : fatal error LNK1181: Eingabedatei "c:/Users/ralf/AppData/Roaming/Software/tcl8.6/tcl8.6.4/win/pkgs/tdbc1.0.3/tdbcstub103.lib" kann nicht geffnet werden.
# mt -nologo -manifest tdbcpostgres103.dll.manifest -outputresource:tdbcpostgres103.dll\;2
# 
# tdbcpostgres103.dll.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden.
# make[1]: *** [tdbcpostgres103.dll] Error 31

--- tcl8.6.4/pkgs/tdbcpostgres1.0.3/Makefile.in~	2015-03-06 18:36:37 +0000
+++ tcl8.6.4/pkgs/tdbcpostgres1.0.3/Makefile.in	2015-04-11 19:51:26 +0000
@@ -102,7 +102,6 @@
 MAKE_SHARED_LIB	= @MAKE_SHARED_LIB@
 MAKE_STATIC_LIB	= @MAKE_STATIC_LIB@
 MAKE_STUB_LIB	= @MAKE_STUB_LIB@
-ADD_MANIFEST    = @ADD_MANIFEST@
 OBJEXT		= @OBJEXT@
 RANLIB		= @RANLIB@
 RANLIB_STUB	= @RANLIB_STUB@
@@ -264,7 +263,6 @@
 $(PKG_LIB_FILE): $(PKG_OBJECTS)
 	-rm -f $(PKG_LIB_FILE)
 	${MAKE_LIB}
-	$(ADD_MANIFEST)
 	$(RANLIB) $(PKG_LIB_FILE)
 
 #========================================================================

Diff finished.  Sat Apr 11 21:51:32 2015
User Comments: ralfixx added on 2015-04-21 09:10:17:
Your patch works in my environment.

> Remark: please - next time - submit tickets for tdbc to http://core.tcl.tk/tdbc 

Will do.

I have the impression that I have to recreate an core.tcl.tk account each time I close my browser (had to recreate this one for the third time now...)

R'

jan.nijtmans added on 2015-04-20 12:08:18:

Proposed fix here: http://core.tcl.tk/tdbc/info/80c5063e0c753d7e (for tdbc base-package only). Please try it in your environment, if it works I will merge it to trunk and do the other tdbc* packages as well.

Remark: please - next time - submit tickets for tdbc to http://core.tcl.tk/tdbc

Thanks!