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

Reply via email to