On Mon, Aug 20, 2012 at 08:36:47PM -0700, Jerry wrote: > > On Aug 20, 2012, at 8:11 PM, Jerry wrote: > > > Now I wonder if we could start working towards rehabilitating Tcl/Tk on OS > > X. I say "rehabilitate" because I had been building this without problems > > for years. > > > > With NON_TRANSITIVE=ON or NON_TRANSITIVE=OFF, ENABLE_tcl=ON, and > > ENABLE_tk=ON, the build fails as below. FWIW, my OS X has two Tcl and Tk > > installations, and it looks like cmake is using the "factory" versions of > > the headers and libraries (the so-called "framework builds") but tclsh from > > Macports (in /opt). (All of the tcl stuff is also in /usr/bin or /usr/lib > > but they are links to the framework.) > > > > Cmake stuff: > > > > Found Tclsh: /opt/local/bin/tclsh (found version "8.5") > > -- Found TCL: /System/Library/Frameworks/tcl.framework > > -- Found TCLTK: /System/Library/Frameworks/tcl.framework > > -- Found TK: /System/Library/Frameworks/tk.framework > > -- Looking for include paths and libraries for Tcl/Tk - found > > -- Looking for tclsh > > -- Looking for tclsh - found > > -- TCL_TCLSH = /opt/local/bin/tclsh > > -- TCL_INCLUDE_PATH = /System/Library/Frameworks/Tcl.framework/Headers > > -- TCL_LIBRARY = /System/Library/Frameworks/tcl.framework > > -- TK_INCLUDE_PATH = > > /System/Library/Frameworks/Tk.framework/Headers;/usr/include > > -- TK_LIBRARY = /System/Library/Frameworks/tk.framework > > > > > > Here is the error report for NON_TRANSITIVE=ON: > > > > > > Linking C shared library libplplottcltkd.dylib > > cd /usr/local/plplot_build_dir/bindings/tcl && /opt/local/bin/cmake -E > > cmake_link_script CMakeFiles/plplottcltkd.dir/link.txt --verbose=1 > > /usr/local/adacore-gnat-2011/bin/gcc -dynamiclib > > -Wl,-headerpad_max_install_names -single_module -compatibility_version > > 9.0.0 -current_version 9.2.0 -o libplplottcltkd.9.2.0.dylib -install_name > > /usr/local/plplot_build_dir/bindings/tcl/libplplottcltkd.9.dylib > > CMakeFiles/plplottcltkd.dir/tclAPI.c.o > > CMakeFiles/plplottcltkd.dir/tclMain.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/Pltk_Init.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/plframe.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/plr.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/tcpip.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/tkMain.c.o libtclmatrixd.9.2.0.dylib > > ../../src/libplplotd.11.0.0.dylib -framework tcl -framework tk > > Undefined symbols for architecture x86_64: > > "_XLookupString", referenced from: > > _PlFrameKeyEH in plframe.c.o > > "_XFlush", referenced from: > > _DisplayPlFrame in plframe.c.o > > ld: symbol(s) not found for architecture x86_64 > > collect2: ld returned 1 exit status > > make[2]: *** [bindings/tcl/libplplottcltkd.9.2.0.dylib] Error 1 > > make[1]: *** [bindings/tcl/CMakeFiles/plplottcltkd.dir/all] Error 2 > > make: *** [all] Error 2 > > > > > > With NON_TRANSITIVE=OFF, the error is the same but with some extra > > libraries being linked: > > > > > > Linking C shared library libplplottcltkd.dylib > > cd /usr/local/plplot_build_dir/bindings/tcl && /opt/local/bin/cmake -E > > cmake_link_script CMakeFiles/plplottcltkd.dir/link.txt --verbose=1 > > /usr/local/adacore-gnat-2011/bin/gcc -dynamiclib > > -Wl,-headerpad_max_install_names -single_module -compatibility_version > > 9.0.0 -current_version 9.2.0 -o libplplottcltkd.9.2.0.dylib -install_name > > /usr/local/plplot_build_dir/bindings/tcl/libplplottcltkd.9.dylib > > CMakeFiles/plplottcltkd.dir/tclAPI.c.o > > CMakeFiles/plplottcltkd.dir/tclMain.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/Pltk_Init.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/plframe.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/plr.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/tcpip.c.o > > CMakeFiles/plplottcltkd.dir/__/tk/tkMain.c.o libtclmatrixd.9.2.0.dylib > > ../../src/libplplotd.11.0.0.dylib -framework tcl -framework tk > > /usr/lib/libltdl.dylib /usr/lib/libdl.dylib > > ../../lib/csa/libcsirocsa.0.0.1.dylib > > ../../lib/qsastime/libqsastime.0.0.1.dylib /usr/lib/libm.dylib > > Undefined symbols for architecture x86_64: > > "_XLookupString", referenced from: > > _PlFrameKeyEH in plframe.c.o > > "_XFlush", referenced from: > > _DisplayPlFrame in plframe.c.o > > ld: symbol(s) not found for architecture x86_64 > > collect2: ld returned 1 exit status > > make[2]: *** [bindings/tcl/libplplottcltkd.9.2.0.dylib] Error 1 > > make[1]: *** [bindings/tcl/CMakeFiles/plplottcltkd.dir/all] Error 2 > > make: *** [all] Error 2 > > > > IIRC there was at the beginning of this thread the suggestion that there > > might be something wrong with the X11 libraries. > > > > Jerry > > Also, the undefined symbols are the same if I use the "factory" or "MacPorts" > X11 libraries.
Looks to me like libplplottcltkd is not being explicitly linked against the X libraries. It's the same on Linux, but Linux seems more forgiving and picks up the linkage indirectly. From the Qt issues it seems Mac OS-X is more demanding on correct linkage. Latest check-in should add these linkages explicitly. Does this help? Andrew ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel