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.


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


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


/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


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.


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


I just stopped at the first error in each example dir.

--
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA/CoRA Division                    FAX: 303-415-9702
3380 Mitchell Lane                  or...@cora.nwra.com
Boulder, CO 80301              http://www.cora.nwra.com
diff -up plplot-5.9.9/bindings/tk/CMakeLists.txt.libs plplot-5.9.9/bindings/tk/CMakeLists.txt
--- plplot-5.9.9/bindings/tk/CMakeLists.txt.libs	2011-10-12 18:43:01.000000000 -0600
+++ plplot-5.9.9/bindings/tk/CMakeLists.txt	2011-11-29 15:53:39.455072391 -0700
@@ -103,7 +103,7 @@ if(ENABLE_tk)
   endif(BUILD_SHARED_LIBS)
 
   add_executable(plserver plserver.c)
-  target_link_libraries(plserver plplot${LIB_TAG} plplottcltk${LIB_TAG})
+  target_link_libraries(plserver plplot${LIB_TAG} plplottcltk${LIB_TAG} ${TK_LIBRARY} ${TCL_LIBRARY})
 
   if(USE_RPATH)
     get_target_property(LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH)
diff -up plplot-5.9.9/examples/tk/CMakeLists.txt.libs plplot-5.9.9/examples/tk/CMakeLists.txt
--- plplot-5.9.9/examples/tk/CMakeLists.txt.libs	2011-10-12 18:43:01.000000000 -0600
+++ plplot-5.9.9/examples/tk/CMakeLists.txt	2011-11-29 16:11:52.211093302 -0700
@@ -172,7 +172,7 @@ if(BUILD_TEST)
       set_source_files_properties(${TK_SRC_FILE}
         PROPERTIES COMPILE_FLAGS "-DUSINGDLL" )
     endif(BUILD_SHARED_LIBS AND CORE_BUILD)
-    target_link_libraries(${TK_EXE} plplottcltk${LIB_TAG} tclmatrix${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB})
+    target_link_libraries(${TK_EXE} plplottcltk${LIB_TAG} tclmatrix${LIB_TAG} plplot${LIB_TAG} ${TK_LIBRARY} ${TCL_LIBRARY} ${MATH_LIB})
     set_property(GLOBAL APPEND PROPERTY TARGETS_examples_tk ${TK_EXE})
   endforeach(TK_SRC_FILE ${tk_SRC})
   set_property(GLOBAL APPEND PROPERTY TARGETS_examples_tk tclIndex_examples_tk)
diff -up plplot-5.9.9/utils/CMakeLists.txt.libs plplot-5.9.9/utils/CMakeLists.txt
--- plplot-5.9.9/utils/CMakeLists.txt.libs	2011-10-12 18:43:01.000000000 -0600
+++ plplot-5.9.9/utils/CMakeLists.txt	2011-11-29 16:03:52.292208526 -0700
@@ -80,7 +80,7 @@ if(ENABLE_tcl)
 
   add_executable(pltcl pltcl.c)
 
-  target_link_libraries(pltcl plplot${LIB_TAG} plplottcltk${LIB_TAG})
+  target_link_libraries(pltcl plplot${LIB_TAG} plplottcltk${LIB_TAG} ${ITCL_LIBRARY} ${TCL_LIBRARY})
 
   if(USE_RPATH)
     set_target_properties(pltcl
@@ -97,4 +97,4 @@ endif(ENABLE_tcl)
 
 # Build simple executable to check parity bits of all characters read
 # by stdin.
-add_executable(parity_bit_check parity_bit_check.c)
\ No newline at end of file
+add_executable(parity_bit_check parity_bit_check.c)
------------------------------------------------------------------------------
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