Re: [atlas-devel] change in dynamic build
Brought to you by:
rwhaley,
tonyc040457
From: Jean-François M. <jf...@co...> - 2012-01-30 19:41:23
|
A short _ belated _ reply to Clint's mail of dec 30. The proposal looks excellent _ and basically makes sense as well for MacOSX. A) Concerning the split-up in 3 libraries _ looks w/o problem to me... But I would have a priori a tendency to have separate libs for separate API's, like BLAS and LAPACK _ especially when one looks much more stable than the other _ , and thus maybe copy the current 4 way split of the static libs rather than the proposed 3-way split. For about every pkg I know, static and shared libs correspond in a 1 to 1 way, and doing this differently would involve non-trivial additional work: really strong reasons would be neeeded in my view to depart from this almost universal practice. I'm a bit less sensitive/sympathetic to incomplete builds of atlas: seems to me that nowadays there is a fortran installable on about evey platform, and that anybody can download lapack; as a consequence, I would see no harm if building shared libs was restricted to complete builds. I look primarily for functionality, correpomdence with API, stability, decreasing memory footprint for applications, keeping number of exported symbols reasonably low... B) Concerning the names of the libraries, implementation (porting to MacOSX) will be slightly easier with names of the form libfoo.VSTRING.Suffix, wher "suffix" stands for "so" or "dylib", and VSTRING stands for the full version string (like Major.minor.patch _ but cf C below) _ so the SONAME can be just libfoo.Major.so and on MacOSX the install_name /abs/path/to/ libfoo.Major.dylib. Indeed this order seems mandatory on MacOSX... C) Versioning : still would be safe to follow systematically libtool's method for versioning, for full consistency across releases and OS's, and thus, w/o necessarily using libtool itself, use at least its algorithm behind -version-info CURRENT[:REVISION[:AGE]] (cf. `info glibtool` 4) Invoking libtool 4.2) Link mode cf. alse Note 'Versioning' there) [ or alternatively (but depreated) -version-number MAJOR[:MINOR[:REVISION]] ] E.g., plunder just that algorithm from ltmain.sh , or use some invocation of glibtool --dry-run... JF Mertens |