On Thu, Nov 24, 2011 at 06:04:02PM -0800, Alan Irwin wrote: > On 2011-11-24 12:11-0800 Alan W. Irwin wrote: > > > I will now move on [from C and C++] to other languages to see how far I can > > get with > > non-transitive linking. > > As of revision 12045 I have gotten pretty far. I have completed a > NON_TRANSITIVE implementation (both for CMake and our *.pc files used > for pkg-config) for most of the libraries that generated rpmlint > messages for Orion as well as libplplotdmd. Everything tests without > issues on Debian stable, but there are very likely still issues on > more modern distros such as Debian unstable and Fedora that others > will have to work out. Also, see my recent commit messages for > further pkg-config changes that I suggest if anybody has interest in > implementing those. Also consult the commit message for the > libplplotdmd NON_TRANSITIVE implementation which is a really special > case that I cannot test because of a bad implementation of D shared > libraries in Debian stable. > > My remaining ToDo list for this project is to complete Orion's list of > libraries (i.e., do the NON_TRANSITIVE implementation for > libplplotwxwidgetsd and libplplotqtd); fix the now broken static build > (by adding the --static option to pkg-config in that case) for the > traditional installed examples tree; and do a comprehensive test with > -DNON_TRANSITIVE=ON to fill in any tests that were missed by my > limited and piece-meal testing of my NON_TRANSITIVE changes as I went > along.
Alan, The fortran 77 and fortran 95 examples did not compile as you need to explicitly link against libplplotf77cd and libplplotf95cd respectively. Parts of the fortran bindings are implemented in C and so the C parts of the library need to be directly linked. Now fixed in svn. Examples also build fine using pkg-config in the install tree. Ada also doesn't work, although the situation is more complicated. I don't understand enough about ada, but it appears that building the examples is linking in the .o files from bindings/ada/CMakeFiles/plplotadad.dir/ and these reference C API functions. This seems odd to me so I don't know whether it is a "bug" or a feature. At the moment it looks like libplplotd would need to be explicitly linked in. I can't see how to do this though. The gnat manpages are brief to say the least... I know there are some "issues" with gnat in Debian unstable so it is possible this is a compiler bug. Orion, can you confirm the problem? For reference the relevant build error message is --------------- Linking Ada executable x01a gnatbind -aI/home/andrew/software/plplot/plplot/examples/ada -aI/home/andrew/software/plplot/plplot/bindings/ada -aO/home/andrew/software/plplot/build_test/bindings/ada/CMakeFiles/plplotadad.dir -x x01a.ali gnatlink x01a.ali -rdynamic ../../bindings/ada/libplplotadad.so.0.0.0 -Wl,-rpath,/home/andrew/software/plplot/build_test/bindings/ada:/home/andrew/software/plplot/build_test/src:/home/andrew/software/plplot/build_test/lib/csa:/home/andrew/software/plplot/build_test/lib/qsastime -Wl,-rpath-link,/home/andrew/software/plplot/build_test/src:/home/andrew/software/plplot/build_test/lib/csa:/home/andrew/software/plplot/build_test/lib/qsastime /usr/bin/ld: /home/andrew/software/plplot/build_test/bindings/ada/CMakeFiles/plplotadad.dir/plplot_traditional.o: undefined reference to symbol 'c_plspause' /usr/bin/ld: note: 'c_plspause' is defined in DSO /home/andrew/software/plplot/build_test/src/libplplotd.so.11 so try adding it to the linker command line /home/andrew/software/plplot/build_test/src/libplplotd.so.11: could not read symbols: Invalid operation collect2: ld returned 1 exit status gnatlink: error when calling /usr/bin/gcc-4.6 gnatmake: *** link failed. make[2]: *** [examples/ada/x01a] Error 4 make[1]: *** [examples/ada/CMakeFiles/x01a.dir/all] Error 2 ---------------- Incidentally gdc works fine. 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 [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
