Hi!
I try to compile XOTcl 1.4.0 against Tcl 8.4.13 for using it with Naviserver (Head).
I do the usual ./configure --enable-threads --prefix=/usr/local/ns
and after that, make, that barks:
[...] ./generic/xotcl.c: In function ‘AutonameIncr’: ./generic/xotcl.c:1718: warning: implicit declaration of function ‘TclIncrVar2’ ./generic/xotcl.c:1718: warning: assignment makes pointer from integer without a cast ./generic/xotcl.c: In function ‘Xotcl_Init’: ./generic/xotcl.c:11310: warning: dereferencing type-punned pointer will break strict-aliasing rules
[...] ./generic/xotclStubLib.c: In function ‘Xotcl_InitStubs’: ./generic/xotclStubLib.c:67: warning: dereferencing type-punned pointer will break strict-aliasing rules rm -f libxotclstub1.4.0.a ar cr libxotclstub1.4.0.a xotclStubLib.o ranlib libxotclstub1.4.0.a couldn't load file "././libxotcl1.4.0.so": ././libxotcl1.4.0.so: undefined symbol: TclIncrVar2 while executing "load ././libxotcl1.4.0.so XOTcl" ("package ifneeded XOTcl 1.4.0" script) invoked from within "package require XOTcl" (file "./library/lib/makeDoc.xotcl" line 2) make: *** [doc/langRef-xotcl.html] Fehler 1
I can't swear my build environment is sane as I did a lot of installs and tests these days, but I'll try everything you tell me...
Thanks, Bernd.
Bernd,
to be sure, i just built xotcl 1.4.0 against 8.4.13, and it worked without a glitch. Can it be that configure picks up a wrong version of tcl? The function TclIncrVar2 has its prototype in tclIntDecls.h, which does not seem to be used in your case (... implicit declaration ...)
To be sure, use the switches like in:
http://www.openacs.org/xowiki/pages/en/xotcl-core#install
if this does not help, what is your build environment (OS and cc)?
-gustaf
Bernd Eidenschink schrieb:
Hi!
I try to compile XOTcl 1.4.0 against Tcl 8.4.13 for using it with Naviserver (Head).
I do the usual ./configure --enable-threads --prefix=/usr/local/ns
and after that, make, that barks:
[...] ./generic/xotcl.c: In function ‘AutonameIncr’: ./generic/xotcl.c:1718: warning: implicit declaration of function ‘TclIncrVar2’ ./generic/xotcl.c:1718: warning: assignment makes pointer from integer without a cast ./generic/xotcl.c: In function ‘Xotcl_Init’: ./generic/xotcl.c:11310: warning: dereferencing type-punned pointer will break strict-aliasing rules
[...] ./generic/xotclStubLib.c: In function ‘Xotcl_InitStubs’: ./generic/xotclStubLib.c:67: warning: dereferencing type-punned pointer will break strict-aliasing rules rm -f libxotclstub1.4.0.a ar cr libxotclstub1.4.0.a xotclStubLib.o ranlib libxotclstub1.4.0.a couldn't load file "././libxotcl1.4.0.so": ././libxotcl1.4.0.so: undefined symbol: TclIncrVar2 while executing "load ././libxotcl1.4.0.so XOTcl" ("package ifneeded XOTcl 1.4.0" script) invoked from within "package require XOTcl" (file "./library/lib/makeDoc.xotcl" line 2) make: *** [doc/langRef-xotcl.html] Fehler 1
I can't swear my build environment is sane as I did a lot of installs and tests these days, but I'll try everything you tell me...
Thanks, Bernd.
Xotcl mailing list Xotcl@alice.wu-wien.ac.at http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
Gustaf Neumann schrieb:
Bernd,
to be sure, i just built xotcl 1.4.0 against 8.4.13, and it worked without a glitch. Can it be that configure picks up a wrong version of tcl? The function TclIncrVar2 has its prototype in tclIntDecls.h, which does not seem to be used in your case (... implicit declaration ...)
To be sure, use the switches like in:
http://www.openacs.org/xowiki/pages/en/xotcl-core#install
if this does not help, what is your build environment (OS and cc)?
I saw the same error when compiling XOTcl 1.4 against Tcl 8.5 from cvs head, where TclIncrVar2 is commented out in the internal stubs table for tclIntDecls.h. (on SUSE 10.1 x86-64)
So should XOTcl compile against both 8.4 and 8.5?
Michael
Hi Michael,
I saw the same error when compiling XOTcl 1.4 against Tcl 8.5 from cvs head, where TclIncrVar2 is commented out in the internal stubs table for tclIntDecls.h. (on SUSE 10.1 x86-64)
At least there is a patch here: http://alice.wu-wien.ac.at/pipermail/xotcl/2006-April/005074.html
Bernd.
The mentioned patch is only for compiling against 8.5. Applying this patch as it is will break compilation with tcl 8.4.*. It will need another ifdef. just by looking into the patch, i have the suspicion that it will create a memory leak. So, the better approach seems to increment the autonames without TclIncr*Var2, which should not be terribly complex. it will go into the next release.
however, concerning the original mail, this is good evidence, that you were not compiling against tcl 8.4.13 but against a tcl 8.5 version. Using the --with-tcl flag should solve the issue.
-gustaf
Bernd Eidenschink schrieb:
Hi Michael,
I saw the same error when compiling XOTcl 1.4 against Tcl 8.5 from cvs head, where TclIncrVar2 is commented out in the internal stubs table for tclIntDecls.h. (on SUSE 10.1 x86-64)
At least there is a patch here: http://alice.wu-wien.ac.at/pipermail/xotcl/2006-April/005074.html
Bernd. _______________________________________________ Xotcl mailing list Xotcl@alice.wu-wien.ac.at http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
Gustaf,
to be sure, i just built xotcl 1.4.0 against 8.4.13, and it worked without a glitch.
thanks for making the effort! I started now with the switches from the oacs wiki docs you pointed me to:
./configure --enable-threads --prefix=/usr/local/ns \ --exec-prefix=/usr/local/ns --with-tcl=/tmp/tcl8.4.13/unix
and it shows that "--with-tcl=" arg did the trick on my machine. The TCL config files are identical (diffed), nevertheless. If I can find some more time, I'll try to track exactly whats going on, for now, it compiled as expected in the first run.
Thanks! Bernd.