Hi Jerry and Andrew: On 2012-05-13 21:15-0700 Jerry wrote:
> with -DNON_TRANSITIVE=ON \ (and tcl/tk still disabled), both 12121 and 12165 > failed to build. I then bisected between 12121 and 11957 and found: > > 12053 builds > 12054 fails Thanks very much, Jerry, for that essential information! Andrew, the rest of this e-mail is addressed largely to you. If you look at svn diff -x -w --revision=12053:12054 |less everything seems fine on the surface. The cmake logic target_link_libraries(plplotqt${LIB_TAG} LINK_INTERFACE_LIBRARIES) # This configures the pkg-config method to use non-transitive linking. set(PC_REQUIRES_TAG "Requires.private") simply tells both CMake and pkg-config (when we use the latter) when some application or shared object links to libplplotqtd not to link to the libplplotqtd Qt4 dependencies to avoid overlinking. Of course, this only works if we can assume that all of the applications/shared objects that are linking to libplplotqtd actually have no direct references to Qt4. But it appears this assumption is violated for at least qt.so (one important shared object that depends on libplplotqtd). software@raven> nm --demangle --undefined-only qt.so |grep QWidget U QtPLWidget::QtPLWidget(int, int, QWidget*) U QWidget::setWindowTitle(QString const&) U QWidget::move(QPoint const&) U QWidget::raise() U QWidget::resize(QSize const&) and similarly for other Qt4 classes I recognize such as QPainter. So qt.so clearly violates the above assumption. However, I don't know whether the _other_ applications (and shared objects?) that depend on libplplotqtd have direct references to Qt4 symbols or not. To help figure that out I suggest you remove the above CMake logic as an experiment, to see if you get overlinked warnings for other applications/shared objects which depend on libplplotqtd. Of course, in the past we have got overlinked warnings which were false positives so such warnings would have to be followed up with investigation using nm as above. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ 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