Hi Orion:

Sorry your previous post fell through the cracks.  I think Andrew is the
best guy to evaluate your patch so I won't comment on that, but
I will respond to two of your questions not involving the patch.

On 2012-01-04 09:12-0700 Orion Poplawski wrote:

>> plplot-ocaml.i686: E: binary-or-shlib-defines-rpath
>> /usr/lib/ocaml/stublibs/dllplplot_stubs.so ['/usr/lib/ocaml',
>> '/builddir/build/BUILD/plplot-5.9.9/fedora/src']
>> plplot-ocaml.i686: E: binary-or-shlib-defines-rpath
>> /usr/lib/ocaml/stublibs/dllplcairo_stubs.so ['/usr/lib',
>> '/builddir/build/BUILD/plplot-5.9.9/fedora/src']
>> 
>> Anyone know why the rpaths aren't being removed on install?

I have just made a change (revision 12117) which is untested, but
which I think should fix this.

>> 
>> Trying to build with the attached patch though I get this:
>> 
>> /usr/lib/ccache/gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
>> -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom
>> -fasynchronous-unwind-tables CMakeFiles/plserver.dir/plserver.c.o -o 
>> plserver
>> -rdynamic ../../src/libplplotd.so.11.0.0 ../tcl/libplplottcltkd.so.9.2.0 
>> -ltk
>> -ltcl ../../src/libplplotd.so.11.0.0
>> 
>> -Wl,-rpath,/builddir/build/BUILD/plplot-5.9.9/fedora/src:/builddir/build/BUILD/plplot-5.9.9/fedora/bindings/tcl:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/csa:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/nn:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/qsastime:
>> 
>> -Wl,-rpath-link,/builddir/build/BUILD/plplot-5.9.9/fedora/lib/csa:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/nn:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/qsastime:/builddir/build/BUILD/plplot-5.9.9/fedora/bindings/tcl
>> 
>> ../../src/libplplotd.so.11.0.0: undefined reference to
>> `agg::font_engine_freetype_base::hinting(bool)'
>> ....
>> ../../src/libplplotd.so.11.0.0: undefined reference to
>> `plD_dispatch_init_tek4107f'
>>
>>  From the build line for libplplotd.so.11.0.0:
>> 
>> /usr/lib/ccache/c++ -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
>> -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686
>> -mtune=atom -fasynchronous-unwind-tables -shared 
>> -Wl,-soname,libplplotd.so.11
>> -o libplplotd.so.11.0.0 CMakeFiles/plplotd.dir/pdfutils.c.o
>> CMakeFiles/plplotd.dir/plaffine.c.o CMakeFiles/plplotd.dir/plarc.c.o
>> CMakeFiles/plplotd.dir/plargs.c.o CMakeFiles/plplotd.dir/plbox.c.o
>> CMakeFiles/plplotd.dir/plcont.c.o CMakeFiles/plplotd.dir/plcore.c.o
>> CMakeFiles/plplotd.dir/plctrl.c.o CMakeFiles/plplotd.dir/plcvt.c.o
>> CMakeFiles/plplotd.dir/pldtik.c.o CMakeFiles/plplotd.dir/plf2ops.c.o
>> CMakeFiles/plplotd.dir/plfill.c.o CMakeFiles/plplotd.dir/plfreetype.c.o
>> CMakeFiles/plplotd.dir/plgradient.c.o CMakeFiles/plplotd.dir/plhist.c.o
>> CMakeFiles/plplotd.dir/plimage.c.o CMakeFiles/plplotd.dir/plline.c.o
>> CMakeFiles/plplotd.dir/plmap.c.o CMakeFiles/plplotd.dir/plot3d.c.o
>> CMakeFiles/plplotd.dir/plpage.c.o CMakeFiles/plplotd.dir/plsdef.c.o
>> CMakeFiles/plplotd.dir/plshade.c.o CMakeFiles/plplotd.dir/plstdio.c.o
>> CMakeFiles/plplotd.dir/plstripc.c.o CMakeFiles/plplotd.dir/plsym.c.o
>> CMakeFiles/plplotd.dir/pltick.c.o CMakeFiles/plplotd.dir/plvpor.c.o
>> CMakeFiles/plplotd.dir/plwind.c.o CMakeFiles/plplotd.dir/plbuf.c.o
>> CMakeFiles/plplotd.dir/plgridd.c.o CMakeFiles/plplotd.dir/plvect.c.o
>> CMakeFiles/plplotd.dir/mt19937ar.c.o CMakeFiles/plplotd.dir/pltime.c.o
>> CMakeFiles/plplotd.dir/pllegend.c.o
>> CMakeFiles/plplotd.dir/__/drivers/cairo.c.o
>> CMakeFiles/plplotd.dir/__/drivers/qt.cpp.o
>> CMakeFiles/plplotd.dir/__/bindings/qt_gui/plqt.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/mem.c.o
>> CMakeFiles/plplotd.dir/__/drivers/ntk.c.o
>> CMakeFiles/plplotd.dir/__/drivers/null.c.o
>> CMakeFiles/plplotd.dir/__/drivers/ps.c.o
>> CMakeFiles/plplotd.dir/__/drivers/pstex.c.o
>> CMakeFiles/plplotd.dir/__/drivers/psttf.cc.o
>> CMakeFiles/plplotd.dir/__/drivers/svg.c.o
>> CMakeFiles/plplotd.dir/__/drivers/tk.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tcl/tclAPI.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tcl/tclMain.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk/Pltk_Init.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk/plframe.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk/plr.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk/tcpip.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk/tkMain.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tcl/tclMatrix.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tcl/matrixInit.c.o
>> CMakeFiles/plplotd.dir/__/drivers/tkwin.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk-x-plat/Plplotter_Init.c.o
>> CMakeFiles/plplotd.dir/__/bindings/tk-x-plat/plplotter.c.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_agg.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_app.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_dc.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_gc.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/xfig.c.o
>> CMakeFiles/plplotd.dir/__/drivers/xwin.c.o -pthread -lpangocairo-1.0
>> -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt 
>> -lglib-2.0
>> -lSM -lICE -lX11 -lXext -lSM -lICE -lX11 -lXext -lpthread -ltcl -ltk 
>> -litcl3.4
>> -litk3.4 -ltcl -ltk -ltcl -ltk -pthread -lLASi -lpangoft2-1.0 -lpango-1.0
>> -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt
>> -lglib-2.0 -pthread -lwx_baseu-2.8 -lwx_gtk2u_core-2.8 -lQtSvg -lQtGui 
>> -lQtXml
>> -lQtCore -lm ../lib/csa/libcsirocsa.so.0.0.1 ../lib/nn/libcsironn.so.0.0.1
>> ../lib/qsastime/libqsastime.so.0.0.1 -lfreetype -lpango-1.0 -lcairo
>> -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lSM -lICE -lX11
>> -lXext -lpthread -ltcl -ltk -litcl3.4 -litk3.4 -lLASi -lpangoft2-1.0
>> -lfontconfig -lwx_baseu-2.8 -lwx_gtk2u_core-2.8 -lQtSvg -lQtGui -lQtXml
>> -lQtCore -lm
>> 
>> -Wl,-rpath,/builddir/build/BUILD/plplot-5.9.9/fedora/lib/csa:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/nn:/builddir/build/BUILD/plplot-5.9.9/fedora/lib/qsastime:
>> 
>> 
>> Now, why is
>> 'CMakeFiles/plplotd.dir/__/drivers/wxwidgets_agg.cpp.oCMakeFiles/plplotd.dir/__/drivers/wxwidgets.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_app.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_dc.cpp.o
>> CMakeFiles/plplotd.dir/__/drivers/wxwidgets_gc.cpp.o' getting put into
>> libplplotd and not libplplotcxxd? So the other languages can output to wx*
>> devices? It's not really a driver though, correct?

I assume you are building with the cmake option
-DENABLE_DYNDRIVERS=OFF.  In that special case, the device drivers are not
shared objects which are dynamically loaded by the libplplot as for
the usual (default) case. Instead, for this special case all drivers
(whether C or C++) are made part of the plplot library and called
directly as needed as part of the services provided by that (expanded)
library.  wxwidgets*.cpp.o are all compiled objects which are part of
the wxwidgets device driver. So the above seems fine to me.

I have never particularly liked the necessity of mixing C and C++ code
together in libplplot for this special case, but the driver code calls
libplplot core functions and the libplplot core calls the device code
so the driver code cannot be placed in separate libraries without
getting circular linking issues. Fortunately, that is not an issue for
the default dynamic device driver case where the various devices are
linked to the plplot library (which helps to resolve all the symbols
in each of the dynamic devices as confirmed by "ldd -r" on those
shared objects) and dynamically loaded as needed by that library.

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
__________________________

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to