From: Alan W. I. <ir...@be...> - 2002-07-19 23:40:16
|
I have just committed my changes to split out the pltcl library and I also greatly simplified the linking flags. The old model for linking flags was to "throw in everything but the kitchen sink until the sucker worked". The new model is to attempt to link just what is required and nothing more. With the new model, applications only link libplplot (which is quite convenient); libplplot only links libpltcl, the normal list of dynamic drivers, and libg2c (the library required in Linux for fortran); and finally libpltcl links the tcl, itcl, tk, itk, xwin, libtclmatrix, and the special dynamic drivers. These changes have been tested (my usual interactive and non-interactive tests) in the plplot/tmp location and also in an arbitrary location with the result installed with prefix = /usr/local/plplot. I used the configure options --with-double --enable-dyndrivers --enable-java --enable-gnome --enable-ntk --enable-tkwin I believe this new linking scheme should work for all modern Linux dynamic loaders. (Just for the record, my dynamic loader /lib/ld-2.2.5.so from Debian woody is part of the libc6-2.2.5 package.) However, if I recall correctly there was some evidence in the past that Joao's older patched SuSe distribution had different linking requirements. So Joao and others, please test the latest CVS on your various Linux distributions starting from a fresh checkout from CVS. Note with the new model @LIBS@ (the combination of a zillion different linking flags) is no longer used, but it is still defined in case we need it to support older dynamic loaders. Maurice, I think if you followed what I did for libpltcl, you could also easily split out the fortran interface from libplplot. And similar remarks to Geoffrey about splitting out the java interface from libplplot. Other notes: I believe the current scheme will work also for --disable-dyndrivers. The idea there is the special drivers get absorbed into libpltcl and the rest get absorbed into libplplot. But I haven't tested this at all. I haven't yet thought much about the static library case. For Linux shouldn't we just drop that altogether? Alternatively, we could make it a non-default configuration item for Linux if there are still some important Linux distributions that do not support shared libraries. I haven't thought at all about our other platforms, but I will address that issue once we are completely satisfied about the linking behaviour on Linux. So please test the current CVS hard on as wide a variety of Linux platforms as possible using --enable-dyndrivers. If you want to try it without that flag, I would also be interested in the results, but no guarantees it would work! Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ |