On Tue, Nov 29, 2011 at 04:54:27PM -0700, Orion Poplawski wrote:
> On 11/28/2011 11:56 PM, Alan W. Irwin wrote:
>> So this should complete my NON_TRANSITIVE changes to the build system.
>>
>> Orion and Andrew: I hope this effort has been worth it and greatly
>> reduces packaging warnings you have been getting on both Fedora and Debian
>> concerning overlinking.
>
> Thanks for the work on this.  Here's where it stands from my testing:
>
> Build failures:
>
> /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  
> ../../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
>  
> 
>
> /usr/bin/ld: CMakeFiles/plserver.dir/plserver.c.o: undefined reference  
> to symbol 'Tcl_SetVar'
> /usr/bin/ld: note: 'Tcl_SetVar' is defined in DSO /usr/lib/libtcl8.5.so  
> so try adding it to the linker command line
> /usr/lib/libtcl8.5.so: could not read symbols: Invalid operation
>
> And:
>
> /usr/bin/ld: CMakeFiles/plserver.dir/plserver.c.o: undefined reference  
> to symbol 'Tk_ParseArgv'
> /usr/bin/ld: note: 'Tk_ParseArgv' is defined in DSO /usr/lib/libtk8.5.so  
> so try adding it to the linker command line
>
> The Fedora linker requires explicit linking to libraries used by the  
> compiled code.  The attached patch fixes this and similar errors.

This is always the case I think. Debian also requires this. I confirm your
patch for tcl / tk fixes things for me and I have applied it to svn

> rpmlint shlib ouput:
>
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf77d.so.9.1.1 /lib/libm.so.6
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf77d.so.9.1.1 /lib/libgcc_s.so.1
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf77d.so.9.1.1 /usr/lib/libquadmath.so.0
>
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf95d.so.9.1.1 /lib/libm.so.6
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf95d.so.9.1.1 /lib/libgcc_s.so.1
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotf95d.so.9.1.1 /usr/lib/libquadmath.so.0
>
> These may just be issues with gfortran as these don't appear on the link  
> line.
>
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotcxxd.so.10.0.0 /lib/libm.so.6
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotcxxd.so.10.0.0 /lib/libgcc_s.so.1
>
> same here with g++
>
> plplot-libs.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotd.so.11.0.0 /lib/libdl.so.2
>
> plplot-qt.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotqtd.so.0.0.1 /usr/lib/libQtXml.so.4
>
> plplot-tk.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplottcltkd.so.9.2.0 /usr/lib/libSM.so.6
> plplot-tk.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplottcltkd.so.9.2.0 /usr/lib/libICE.so.6
> plplot-tk.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplottcltkd.so.9.2.0 /usr/lib/libXext.so.6
>
> plplot-wxGTK.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotwxwidgetsd.so.0.0.0 /usr/lib/libagg.so.2
> plplot-wxGTK.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotwxwidgetsd.so.0.0.0 /usr/lib/libaggfontfreetype.so.2
> plplot-wxGTK.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotwxwidgetsd.so.0.0.0 /usr/lib/libfreetype.so.6
> plplot-wxGTK.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotwxwidgetsd.so.0.0.0 /lib/libm.so.6
> plplot-wxGTK.i686: W: unused-direct-shlib-dependency  
> /usr/lib/libplplotwxwidgetsd.so.0.0.0 /lib/libpthread.so.0
>
> Some other rpmlint issues:
>
>
> plplot.i686: W: file-not-utf8 /usr/share/doc/plplot-5.9.9/README.release
> plplot.i686: E: incorrect-fsf-address  
> /usr/share/doc/plplot-5.9.9/COPYING.LIB
> plplot-octave.i686: E: incorrect-fsf-address  
> /usr/share/plplot_octave/struct_contains.m

I agree with you Orion that this should probably be fixed. I recently
fixed up Copyright for the same reason (wrong address) as Debian lintian
complained about it. Debian doesn't install COPYING.LIB. I maintains
central copies of the GPL licenses and links to these so I didn't fix
COPYING.LIB as well.

> Building examples in the installed tree with make:
>
> /usr/bin/gnatmake -aI/usr/share/ada/adainclude/plplotadad  
> -aL/usr/lib/ada/adalib/plplotadad x15a.adb \
> -cargs `PKG_CONFIG_PATH=/usr/lib/pkgconfig pkg-config  --cflags  
> plplotd-ada` -largs  `PKG_CONFIG_PATH=/usr/lib/pkgconfig pkg-config  
> --libs plplotd-ada`
> gcc -c -I/usr/share/ada/adainclude/plplotadad -I/usr/include/plplot x15a.adb
> gnatbind -aI/usr/share/ada/adainclude/plplotadad  
> -aO/usr/lib/ada/adalib/plplotadad -x x15a.ali
> gnatlink x15a.ali -lplplotadad
> /usr/bin/ld: ./x15a.o: undefined reference to symbol 'c_plfill'
> /usr/bin/ld: note: 'c_plfill' is defined in DSO  
> /usr/lib/libplplotd.so.11 so try adding it to the linker command line

I think this is because the plfill is being passed as a function argument 
in this case. I don't understand enough about ada to know why this is a
problem but I suspect we need to explicitly link to plplotd in the 
pkgconfig-ada file. We do this for the cmake build of the examples 
already.

> /usr/lib/ccache/c++ wxPLplotDemo.cpp -o wxPLplotDemo `pkg-config  
> --cflags --libs plplotd-wxwidgets`
> /usr/bin/ld: /tmp/cc2nmLCB.o: undefined reference to symbol  
> 'plstream::line(int, double const*, double const*)'
> /usr/bin/ld: note: 'plstream::line(int, double const*, double const*)'  
> is defined in DSO /usr/lib/libplplotcxxd.so.10 so try adding it to the  
> linker command line

This is a less obvious error since the source code does not directly
mention plstream, but the wxPlplotstream class inherits from plstream
and so plplotcxxd needs explicitly linking in for pkgconfig-wxwidgets

> cd f95; make
> make[1]: Entering directory `/usr/share/plplot5.9.9/examples/f95'
> /usr/bin/gfortran  x01f.f90 -o x01f `pkg-config  --cflags --libs  
> plplotd-f95`
> x01f.f90:24.19:
>
>    use plf95demolib
>                    1
> Fatal Error: Can't open module file 'plf95demolib.mod' for reading at  
> (1): No such file or directory
>
> This file does not appear to have been installed.

This is odd - I do not see this error. The .mod file is installed in
lib/fortran/modules/plplot for me.

> make[1]: Entering directory `/usr/share/plplot5.9.9/examples/tk'
> /usr/lib/ccache/gcc xtk01.c -o xtk01 `pkg-config  --cflags --libs  
> plplotd-tcl`
> /usr/bin/ld: /tmp/ccJlYbFQ.o: undefined reference to symbol 'c_plvsta'
> /usr/bin/ld: note: 'c_plvsta' is defined in DSO  
> /usr/lib/libplplotd.so.11 so try adding it to the linker command line

Confirmed. 

In addition the d language examples fail to explcitly link in plplotd 
for the install tree examples. 

I'll try and fix these up. Incidentally, examples works fine in the
install tree if you use the cmake build system (1 issue with tk examples
now fixed) and they also work fine in the build tree.

Andrew

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to