Summary: | itcl build failed | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Carter Smithhart <carter.smithhart> |
Component: | New packages | Assignee: | Robin Johnson <robbat2> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
itcl build errors
preprocessed file Usage: ppsearch.pl <gcc -E file> <text> |
Description
Carter Smithhart
2004-03-04 20:56:44 UTC
Created attachment 26875 [details]
itcl build errors
i've put a prospective bugfix in as itcl-3.2.1-r1, please test it (it's marked ~x86) and report back. Okay.. I just did an emerge sync, then changed it to x86 and this is what I get: for dir in itcl itk ; do \ if test -d $dir ; then \ echo "$dir: make all" ;\ if (cd $dir; make all) ; then true ; else exit 1 ; fi ; \ else \ exit 1; \ fi \ done; itcl: make all make[1]: Entering directory `/var/tmp/portage/itcl-3.2.1-r1/work/itcl3.2.1/itcl' gcc -DVERSION=\"3.2\" -DUSE_TCL_STUBS=1 -DITCL_LIBRARY=\"/usr/lib/itcl3.2\" -I/usr/lib/tcl8.3/include/generic -I/usr/lib/tcl8.3/include/unix -I"./generic" -I"./unix" -march=athlon-xp -O2 -pipe -fomit-frame-pointer -fPIC -c `echo ./generic/itclStubInit.c` -o itclStubInit.o gcc -DVERSION=\"3.2\" -DUSE_TCL_STUBS=1 -DITCL_LIBRARY=\"/usr/lib/itcl3.2\" -I/usr/lib/tcl8.3/include/generic -I/usr/lib/tcl8.3/include/unix -I"./generic" -I"./unix" -march=athlon-xp -O2 -pipe -fomit-frame-pointer -fPIC -c `echo ./generic/itcl_bicmds.c` -o itcl_bicmds.o gcc -DVERSION=\"3.2\" -DUSE_TCL_STUBS=1 -DITCL_LIBRARY=\"/usr/lib/itcl3.2\" -I/usr/lib/tcl8.3/include/generic -I/usr/lib/tcl8.3/include/unix -I"./generic" -I"./unix" -march=athlon-xp -O2 -pipe -fomit-frame-pointer -fPIC -c `echo ./generic/itcl_class.c` -o itcl_class.o generic/itcl_class.c: In function `Itcl_CreateClass': generic/itcl_class.c:216: warning: passing arg 2 of pointer to function from incompatible pointer type generic/itcl_class.c: In function `Itcl_ClassCmdResolver': generic/itcl_class.c:1014: structure has no member named `flags' generic/itcl_class.c:1015: structure has no member named `flags' generic/itcl_class.c: In function `Itcl_GetCommonVar': generic/itcl_class.c:1697: warning: assignment discards qualifiers from pointer target type distcc[26994] ERROR: compile on localhost failed make[1]: *** [itcl_class.o] Error 1 make[1]: *** Waiting for unfinished jobs.... generic/itcl_bicmds.c: In function `Itcl_BiConfigureCmd': generic/itcl_bicmds.c:465: warning: assignment discards qualifiers from pointer target type generic/itcl_bicmds.c: In function `Itcl_BiInfoFunctionCmd': generic/itcl_bicmds.c:1110: warning: passing arg 3 of pointer to function from incompatible pointer type generic/itcl_bicmds.c: In function `Itcl_BiInfoVariableCmd': generic/itcl_bicmds.c:1323: warning: passing arg 3 of pointer to function from incompatible pointer type make[1]: Leaving directory `/var/tmp/portage/itcl-3.2.1-r1/work/itcl3.2.1/itcl' make: *** [all] Error 1 !!! ERROR: dev-tcltk/itcl-3.2.1-r1 failed. !!! Function src_compile, Line 27, Exitcode 2 !!! emake failed could you look at your /usr/lib/tcl8.*/include/generic/tclInt.h file? look for 'typedef struct Command' and include it's details (without the comments). This is what I've got: typedef struct Command { Tcl_HashEntry *hPtr; Namespace *nsPtr; int refCount; int cmdEpoch; CompileProc *compileProc; Tcl_ObjCmdProc *objProc; ClientData objClientData; Tcl_CmdProc *proc; ClientData clientData; Tcl_CmdDeleteProc *deleteProc; ClientData deleteData; int deleted; ImportRef *importRefPtr; } Command; *scrathes head* that makes absolutely no sense! please run this: cd /var/tmp/portage/itcl-3.2.1-r1/work/itcl3.2.1/itcl gcc -DVERSION=\"3.2\" -DUSE_TCL_STUBS=1 -DITCL_LIBRARY=\"/usr/lib/itcl3.2\" -I/usr/lib/tcl8.3/include/generic -I/usr/lib/tcl8.3/include/unix -I"./generic" -I"./unix" -march=athlon-xp -O2 -pipe -fomit-frame-pointer -fPIC -c `echo ./generic/itcl_class.c` -E >~/dumpfile and include 'dumpfile' as an attachment. For some reason, your system isn't dealing with this expression correctly: #if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 4) isCmdDeleted = (!cmdPtr || (itclCompatFlags & ITCL_COMPAT_USECMDFLAGS ? (cmdPtr->deleted & CMD_IS_DELETED) : cmdPtr->deleted)); #else isCmdDeleted = (!cmdPtr || (itclCompatFlags & ITCL_COMPAT_USECMDFLAGS ? (cmdPtr->flags & CMD_IS_DELETED) : cmdPtr->flags)); #endif it's picking the second part, while it should be taking the first part. Created attachment 27097 [details]
preprocessed file
I had to change: echo ./generic/itcl_class.c to echo ./itcl/generic/itcl_class.c in your dump command.. What's a good way to detect the wrong include file getting included? In other words, perhaps there's a remenant of a previous tcl install or something.. any ideas? could you try find out what values TCL_MAJOR_VERSION and TCL_MINOR_VERSION have at that point in the itcl/generic/itcl_class.c file in your system? it may be a lot of tracing to do. Somewhere it's being redefined I think. The offical place is /usr/include/tcl.h and the values there should be 8 and 3 respectively for you. Created attachment 27138 [details]
Usage: ppsearch.pl <gcc -E file> <text>
Goes through each file that was preprocessed (from gcc -E output) and searches
for <text>..
This is how I figured out that TCL_MAJOR_VERSION wasn't ever getting set but
should have been.
So... I found an old (yet newer) installation of tcl8.4.2 in /usr/local/include and such... I blew that away cuz I don't need it anymore and viola! Things are working again... Thank you for leading down the right path! heh, old things come back to haunt ppl like that. |