On Mon, May 14, 2012 at 10:54:59AM -0700, Alan W. Irwin wrote: > 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, I suspect your hypothesis is right. It is possible that due to the complications of C++ classes we may get linkage problems on some platforms and not others. Wxwidgets might also have suffered in the same way. I will try and do a more thorough check on my Linux system. Will be later in the week before I get chance to look though. In the meantime perhaps we should revert the patch. 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