Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#90 tktreectrl master does not build on OS X 10.8.2

open
Tim Baker
None
5
2012-09-28
2012-09-26
Torsten Berg
No

I tried to build the current master version of tktreectrl with OS X 10.8.2 (Mountain Lion). I used a build with

export CFLAGS='-mmacosx-version-min=10.5 -arch i386'

and used the Tcl/Tk version 8.6b3. I then get this error:

gcc -dynamiclib -arch i386 -pipe -Os -Wall -fno-common -mmacosx-version-min=10.5 -headerpad_max_install_names -Wl,-search_paths_first -Wl,-single_module -current_version 2.4 -compatibility_version 2.4 -o libtreectrl2.4.dylib qebind.o tkTreeColumn.o tkTreeCtrl.o tkTreeDisplay.o tkTreeDrag.o tkTreeElem.o tkTreeHeader.o tkTreeItem.o tkTreeMarquee.o tkTreeNotify.o tkTreeStyle.o tkTreeTheme.o tkTreeUtils.o tkMacOSXTree.o -framework Cocoa -framework Carbon -L/Users/Torsten/Tcl/distrib/mac-builds/8.6b3/tcl/Tcl.framework -ltclstub8.6 -L/Users/Torsten/Tcl/distrib/mac-builds/8.6b3/tk/Tk.framework -ltkstub8.6
Undefined symbols for architecture i386:
"_XCopyArea", referenced from:
_Tree_Display in tkTreeDisplay.o
_Tree_DrawTiledImage in tkTreeDisplay.o
_DisplayDItem in tkTreeDisplay.o
"_XCreateRegion", referenced from:
_TreeDisplay_InitWidget in tkTreeDisplay.o
"_XDestroyRegion", referenced from:
_TreeDestroy in tkTreeCtrl.o
_TreeDisplay_FreeWidget in tkTreeDisplay.o
"_XDrawLines", referenced from:
_HeaderDrawArrow in tkTreeElem.o
"_XDrawRectangle", referenced from:
_TreeItem_DrawButton in tkTreeItem.o
"_XFillRectangle", referenced from:
_DrawColumnBackground in tkTreeDisplay.o
_Proxy_DrawXOR in tkTreeDisplay.o
_DisplayDItem in tkTreeDisplay.o
_DebugDrawBorder in tkTreeDisplay.o
_Tree_InvalidateArea in tkTreeDisplay.o
_Tree_ExposeArea in tkTreeDisplay.o
_TreeItem_DrawButton in tkTreeItem.o
...
"_XGetImage", referenced from:
_LoupeCmd in tkTreeCtrl.o
_TreeHeaderColumn_Draw in tkTreeHeader.o
"_XIntersectRegion", referenced from:
_DrawWhitespaceBelowItem in tkTreeDisplay.o
_DrawWhitespace in tkTreeDisplay.o
_Tree_InvalidateRegion in tkTreeDisplay.o
"_XQueryColors", referenced from:
_LoupeCmd in tkTreeCtrl.o
"_XRectInRegion", referenced from:
_Tree_InvalidateRegion in tkTreeDisplay.o
_Tree_InvalidateArea in tkTreeDisplay.o
"_XSetClipMask", referenced from:
_Tree_Display in tkTreeDisplay.o
"_XSetRegion", referenced from:
_Tree_Display in tkTreeDisplay.o
_DisplayProcText in tkTreeElem.o
"_XSubtractRegion", referenced from:
_Tree_Display in tkTreeDisplay.o
_CalcWhiteSpaceRegion in tkTreeDisplay.o
_Tree_InvalidateRegion in tkTreeDisplay.o
_Tree_InvalidateArea in tkTreeDisplay.o
"_XSync", referenced from:
_DisplayDelay in tkTreeDisplay.o
"_XUnionRectWithRegion", referenced from:
_CalcWhiteSpaceRegion in tkTreeDisplay.o
_DblBufWinDirty in tkTreeDisplay.o
_Tree_InvalidateArea in tkTreeDisplay.o
_DisplayProcText in tkTreeElem.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
make: *** [libtreectrl2.4.dylib] Error 1

It seems that this combination is not able to build a i386 binary. If I use the released version 2.4.1 of tktreectrl instead, the build runs fine and no such problem occurs.

Discussion

  • Tim Baker
    Tim Baker
    2012-09-28

    Looks like treectrl isn't being built with -DUSE_TK_STUBS=1 or something?

     
  • Tim Baker
    Tim Baker
    2012-09-28

    • assigned_to: nobody --> treectrl
     
  • Torsten Berg
    Torsten Berg
    2012-09-28

    No, this is not the problem. Here is the first compile output from make:

    gcc -DPACKAGE_NAME=\"treectrl\" -DPACKAGE_TARNAME=\"treectrl\" -DPACKAGE_VERSION=\"2.4\" -DPACKAGE_STRING=\"treectrl\ 2.4\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE_PATCHLEVEL=\"2.4.1\" -DBUILD_treectrl=/\*\*/ -DMAC_OSX_TK=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DNO_VALUES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_INTPTR_T=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DTCL_THREADS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 -DMAC_TK_COCOA -std=gnu99 -x objective-c -fobjc-gc -I. -I"./generic" -I"/Users/Torsten/Tcl/distrib/tcl/generic" -I"/Users/Torsten/Tcl/distrib/tcl/unix" -I/Library/Frameworks/Tcl.framework/Versions/8.6/Headers -I/Library/Frameworks/Tcl.framework/Versions/8.6/PrivateHeaders -I"/Users/Torsten/Tcl/distrib/tk/generic" -I"/Users/Torsten/Tcl/distrib/tk/unix" -I"/Users/Torsten/Tcl/distrib/tk/generic/ttk" -I"/Users/Torsten/Tcl/distrib/tk/xlib" -I"/Users/Torsten/Tcl/distrib/tk/macosx" -I/Library/Frameworks/Tk.framework/Versions/8.6/Headers -I/Library/Frameworks/Tk.framework/Versions/8.6/PrivateHeaders -I"/Users/Torsten/Tcl/distrib/tk/xlib" -arch i386 -pipe -Os -Wall -fno-common -mmacosx-version-min=10.5 -c `echo ./generic/qebind.c` -o qebind.o

    -DUSE_TK_STUBS=1 is included there.