OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-4384-gcd030f3
Gerrit Code Review
gerrit@openafs.org
Wed, 8 Oct 2014 10:48:14 -0400
The following commit has been merged in the master branch:
commit a470b30ecabb7db578a9345771b0d371a5581f8d
Author: Benjamin Kaduk <kaduk@mit.edu>
Date: Fri Sep 12 15:41:23 2014 -0400
Normalize names of libtool convenience libraries
Part of why libtool was introduced into the tree was to reduce the
number of times each source file is compiled. PIC code is needed
for shared objects, and non-PIC code for static libraries, so in most
cases a C file must be compiled twice, but not more than that.
Libtool automatically manages which version of an object is passed to
the linker when libtool is used to link .la files. At several places
in the tree (libafsrpc, libafsauthent, libuafs_pic.so, and pam_afs.so)
we use libtool to link a .la library and pass other .la libraries in
as linker inputs. In normal situations, libtool would produce an
output shared library that registered a shared library dependency on
the (shared version of the) input library. However, in our usage,
these input .la libraries are used only for our convenience, and are
not intended to be installed, so libtool would produce an output
library that was not usable.
Libtool refers to our usage of libraries not intended to be installed
as "convenience libraries"; for us, they are essentially just
static archives that contain PIC objects (as opposed to normal
static archives which contain non-PIC objects).
Prior to this commit, we had named our convenience libraries things
like libafsauthent_auth.la or libafsrpc_comerr.la, since they were
mostly only used for either libafsrpc or libafsauthent. However,
future commits will need to use some of these convenience libraries
in other shared objects (such as pam_afs.so), so we normalize the
library name to indicate merely that it is a PIC version of that
module.
There are three exceptions to this rule: libafsrpc_sys.la, which
contains only a single file and not the whole of the sys module,
libafsrpc_util.la, which contains a subset of the util objects,
and libauthent_ubik.la, which contains a subset of the ubik
objects. Since these convenience libraries are in fact tailored to
the particular application, a target-specific name is appropriate.
The convenience library provided by the ptserver module is named
libprot_pic to match the existing public interface libprot.a.
We cannot link the dependencies of the convenience libraries
directly into them, because any given object may only be linked
once into a given library, and our dependency graph between
modules is decidedly not a tree, so attempting to link in the
dependencies would result in duplicate symbol errors.
Change-Id: I5f10af74b8582edd51e5f1b3f0026dbc7ef9f7ad
Reviewed-on: http://gerrit.openafs.org/11459
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: D Brashear <shadow@your-file-system.com>
Tested-by: D Brashear <shadow@your-file-system.com>
src/audit/Makefile.in | 4 ++--
src/auth/Makefile.in | 4 ++--
src/comerr/Makefile.in | 4 ++--
src/crypto/rfc3961/Makefile.in | 4 ++--
src/fsint/Makefile.in | 4 ++--
src/kauth/Makefile.in | 4 ++--
src/libafsauthent/Makefile.in | 18 +++++++++---------
src/libafsrpc/Makefile.in | 16 ++++++++--------
src/lwp/Makefile.in | 4 ++--
src/ptserver/Makefile.in | 4 ++--
src/rx/Makefile.in | 4 ++--
src/rxgk/Makefile.in | 4 ++--
src/rxkad/Makefile.in | 4 ++--
src/rxstat/Makefile.in | 4 ++--
src/sys/Makefile.in | 4 ++--
src/vlserver/Makefile.in | 4 ++--
src/volser/Makefile.in | 4 ++--
17 files changed, 47 insertions(+), 47 deletions(-)
--
OpenAFS Master Repository