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