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