From a470b30ecabb7db578a9345771b0d371a5581f8d Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Fri, 12 Sep 2014 15:41:23 -0400 Subject: [PATCH] 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 Reviewed-by: D Brashear Tested-by: D Brashear --- 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(-) diff --git a/src/audit/Makefile.in b/src/audit/Makefile.in index 24f8f0da8..453394f9e 100644 --- a/src/audit/Makefile.in +++ b/src/audit/Makefile.in @@ -21,7 +21,7 @@ LT_objs=audit.lo audit-file.lo audit-sysvmq.lo LT_deps = $(top_builddir)/src/rxkad/liboafs_rxkad.la \ $(top_builddir)/src/util/liboafs_util.la -all: liboafs_audit.la libauthent_audit.la ${TOP_LIBDIR}/libaudit.a ${TOP_INCDIR}/afs/audit.h +all: liboafs_audit.la libaudit_pic.la ${TOP_LIBDIR}/libaudit.a ${TOP_INCDIR}/afs/audit.h ${TOP_LIBDIR}/libaudit.a: libaudit.a ${INSTALL_DATA} $? $@ @@ -35,7 +35,7 @@ libaudit.a: $(LT_objs) liboafs_audit.la: liboafs_audit.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_audit.la: $(LT_objs) +libaudit_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) audit.lo: audit.c audit.h audit-api.h diff --git a/src/auth/Makefile.in b/src/auth/Makefile.in index 3ed23c610..06bccaa3e 100644 --- a/src/auth/Makefile.in +++ b/src/auth/Makefile.in @@ -37,7 +37,7 @@ LIBS=libauth.a \ INCLS=cellconfig.h auth.h keys.h internal.h token.h -all: liboafs_auth.la libauthent_auth.la \ +all: liboafs_auth.la libauth_pic.la \ ${TOP_LIBDIR}/libauth.a ${TOP_LIBDIR}/libauth.krb.a \ depinstall @@ -101,7 +101,7 @@ libauth.krb.a: $(KRB_objs) liboafs_auth.la: liboafs_auth.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_auth.la: $(LT_objs) +libauth_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) copyauth: copyauth.o ${LIBS} diff --git a/src/comerr/Makefile.in b/src/comerr/Makefile.in index cead25c56..6997c8970 100644 --- a/src/comerr/Makefile.in +++ b/src/comerr/Makefile.in @@ -15,7 +15,7 @@ LT_libs = $(LIB_roken) $(MT_LIBS) all: compile_et ${TOP_INCDIR}/afs/com_err.h ${TOP_INCDIR}/afs/error_table.h \ ${TOP_INCDIR}/afs/mit-sipb-cr.h ${TOP_LIBDIR}/libafscom_err.a \ - liboafs_comerr.la libafsrpc_comerr.la + liboafs_comerr.la libcomerr_pic.la buildtools: compile_et @@ -49,7 +49,7 @@ libafscom_err.a: $(LT_objs) liboafs_comerr.la: $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_comerr.la: $(LT_objs) +libcomerr_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) # When we build this file, we're using a .c file that's in the object directory, diff --git a/src/crypto/rfc3961/Makefile.in b/src/crypto/rfc3961/Makefile.in index 0e1b49c3c..6fce447ad 100644 --- a/src/crypto/rfc3961/Makefile.in +++ b/src/crypto/rfc3961/Makefile.in @@ -18,7 +18,7 @@ MODULE_INCLUDE=-I${srcdir} -I${TOP_INCDIR}/hcrypto -I$(UPSTREAM)/krb5 -I$(UPSTRE HEADERS=rfc3961.h krb5_locl.h $(UPSTREAM)/krb5/crypto.h -all: ${TOP_INCDIR}/afs/rfc3961.h liboafs_rfc3961.la libafsrpc_rfc3961.la \ +all: ${TOP_INCDIR}/afs/rfc3961.h liboafs_rfc3961.la librfc3961_pic.la \ ${TOP_LIBDIR}/libafsrfc3961.a ${TOP_INCDIR}/afs/rfc3961.h: rfc3961.h @@ -83,7 +83,7 @@ store-int.lo: ${UPSTREAM}/krb5/store-int.c ${HEADERS} liboafs_rfc3961.la: liboafs_rfc3961.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) $(MT_LIBS) -libafsrpc_rfc3961.la: $(LT_objs) +librfc3961_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) $(MT_LIBS) libafsrfc3961.a: $(LT_objs) diff --git a/src/fsint/Makefile.in b/src/fsint/Makefile.in index 3532e76eb..c4cd13cea 100644 --- a/src/fsint/Makefile.in +++ b/src/fsint/Makefile.in @@ -24,12 +24,12 @@ all: \ generated \ ${TOP_LIBDIR}/libafsint.a \ liboafs_fsint.la \ - libafsrpc_fsint.la + libfsint_pic.la liboafs_fsint.la: liboafs_fsint.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_fsint.la: $(LT_objs) +libfsint_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) libafsint.a: $(LT_objs) afsint.ss.lo afscbint.ss.lo diff --git a/src/kauth/Makefile.in b/src/kauth/Makefile.in index f0b5b6d65..e0efbf66d 100644 --- a/src/kauth/Makefile.in +++ b/src/kauth/Makefile.in @@ -69,7 +69,7 @@ KLIBS=${TOP_LIBDIR}/libubik.a \ ${TOP_LIBDIR}/libafsrfc3961.a \ ${TOP_LIBDIR}/libafshcrypto_lwp.a -all: liboafs_kauth.la libauthent_kauth.la \ +all: liboafs_kauth.la libkauth_pic.la \ kaserver kas kpwvalid klog klog.krb knfs kpasswd rebuild kdb ka-forwarder \ ${TOP_LIBDIR}/libkauth.a \ ${TOP_LIBDIR}/libkauth.krb.a \ @@ -105,7 +105,7 @@ ${TOP_INCDIR}/afs/kaport.h: kaport.h liboafs_kauth.la: liboafs_kauth.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_kauth.la: $(LT_objs) +libkauth_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) test tests: all diff --git a/src/libafsauthent/Makefile.in b/src/libafsauthent/Makefile.in index 2dbbe36fe..5a3ac3874 100644 --- a/src/libafsauthent/Makefile.in +++ b/src/libafsauthent/Makefile.in @@ -12,18 +12,18 @@ include @TOP_OBJDIR@/src/config/Makefile.config include @TOP_OBJDIR@/src/config/Makefile.libtool LT_objs = \ - $(top_builddir)/src/audit/libauthent_audit.la \ - $(top_builddir)/src/auth/libauthent_auth.la \ - $(top_builddir)/src/kauth/libauthent_kauth.la \ + $(top_builddir)/src/audit/libaudit_pic.la \ + $(top_builddir)/src/auth/libauth_pic.la \ + $(top_builddir)/src/kauth/libkauth_pic.la \ $(top_builddir)/src/ubik/libauthent_ubik.la \ - $(top_builddir)/src/sys/libauthent_sys.la \ - $(top_builddir)/src/ptserver/libauthent_ptserver.la \ - $(top_builddir)/src/volser/libauthent_volser.la \ - $(top_builddir)/src/vlserver/libauthent_vlserver.la + $(top_builddir)/src/sys/libsys_pic.la \ + $(top_builddir)/src/ptserver/libprot_pic.la \ + $(top_builddir)/src/volser/libvolser_pic.la \ + $(top_builddir)/src/vlserver/libvlserver_pic.la LT_deps = \ - $(top_builddir)/src/opr/liboafs_opr.la \ - $(top_builddir)/src/util/liboafs_util.la \ + $(top_builddir)/src/opr/libopr_pic.la \ + $(top_builddir)/src/util/libafsutil_pic.la \ $(top_builddir)/src/libafsrpc/libafsrpc.la LT_libs = $(LIB_hcrypto) $(LIB_roken) $(LIB_crypt) $(LIB_AFSDB) $(MT_LIBS) diff --git a/src/libafsrpc/Makefile.in b/src/libafsrpc/Makefile.in index 95ad02769..b4dda3e8e 100644 --- a/src/libafsrpc/Makefile.in +++ b/src/libafsrpc/Makefile.in @@ -10,18 +10,18 @@ include @TOP_OBJDIR@/src/config/Makefile.config include @TOP_OBJDIR@/src/config/Makefile.libtool LT_objs = \ - $(top_builddir)/src/fsint/libafsrpc_fsint.la \ - $(top_builddir)/src/rx/libafsrpc_rx.la \ - $(top_builddir)/src/rxkad/libafsrpc_rxkad.la \ - $(top_builddir)/src/crypto/rfc3961/libafsrpc_rfc3961.la \ - $(top_builddir)/src/comerr/libafsrpc_comerr.la \ + $(top_builddir)/src/fsint/libfsint_pic.la \ + $(top_builddir)/src/rx/librx_pic.la \ + $(top_builddir)/src/rxkad/librxkad_pic.la \ + $(top_builddir)/src/crypto/rfc3961/librfc3961_pic.la \ + $(top_builddir)/src/comerr/libcomerr_pic.la \ $(top_builddir)/src/util/libafsrpc_util.la \ - $(top_builddir)/src/rxstat/libafsrpc_rxstat.la \ + $(top_builddir)/src/rxstat/librxstat_pic.la \ $(top_builddir)/src/sys/libafsrpc_sys.la \ - $(top_builddir)/src/lwp/libafsrpc_lwpcompat.la + $(top_builddir)/src/lwp/liblwpcompat_pic.la LT_deps = \ - $(top_builddir)/src/opr/liboafs_opr.la + $(top_builddir)/src/opr/libopr_pic.la LT_libs = $(LIB_hcrypto) $(LIB_roken) $(MT_LIBS) diff --git a/src/lwp/Makefile.in b/src/lwp/Makefile.in index b6ded9a9a..5b2cbde76 100644 --- a/src/lwp/Makefile.in +++ b/src/lwp/Makefile.in @@ -22,7 +22,7 @@ LT_objs = waitkey.lo fasttime.lo lock.lo LT_deps = $(top_builddir)/src/opr/liboafs_opr.la LT_libs = $(MT_LIBS) -all: liboafs_lwpcompat.la libafsrpc_lwpcompat.la \ +all: liboafs_lwpcompat.la liblwpcompat_pic.la \ ${TOP_LIBDIR}/liblwp.a depinstall depinstall: ${TOP_INCDIR}/lock.h ${TOP_INCDIR}/lwp.h ${TOP_INCDIR}/preempt.h ${TOP_INCDIR}/timer.h @@ -53,7 +53,7 @@ liblwp.a: ${LIBOBJS} $(LT_objs) liboafs_lwpcompat.la: liboafs_lwpcompat.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_lwpcompat.la: $(LT_objs) +liblwpcompat_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) # This is required so sgi_64+ does not try to build this file. diff --git a/src/ptserver/Makefile.in b/src/ptserver/Makefile.in index 86835ed44..946da08ca 100644 --- a/src/ptserver/Makefile.in +++ b/src/ptserver/Makefile.in @@ -52,7 +52,7 @@ LT_deps = $(top_builddir)/src/opr/liboafs_opr.la \ $(top_builddir)/src/auth/liboafs_auth.la LT_libs = -all: ptserver pts pt_util db_verify liboafs_prot.la libauthent_ptserver.la \ +all: ptserver pts pt_util db_verify liboafs_prot.la libprot_pic.la \ ${TOP_LIBDIR}/libprot.a depinstall readgroup readpwd testpt ptclient generated: \ @@ -183,7 +183,7 @@ ptuser.lo: $(LINCLS) liboafs_prot.la: liboafs_prot.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_ptserver.la: $(LT_objs) +libprot_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) libprot.a: $(LT_objs) diff --git a/src/rx/Makefile.in b/src/rx/Makefile.in index 13be450bd..abb54d487 100644 --- a/src/rx/Makefile.in +++ b/src/rx/Makefile.in @@ -26,7 +26,7 @@ all: \ includes \ ${TOP_LIBDIR}/librx.a \ liboafs_rx.la \ - libafsrpc_rx.la + librx_pic.la depinstall: includes @@ -48,7 +48,7 @@ liboafs_rx.la: liboafs_rx.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) # Convenience libraries for libafsrpc and shlibafsrpc -libafsrpc_rx.la: $(LT_objs) +librx_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) # diff --git a/src/rxgk/Makefile.in b/src/rxgk/Makefile.in index 0c421c28f..1e2eb805c 100644 --- a/src/rxgk/Makefile.in +++ b/src/rxgk/Makefile.in @@ -16,7 +16,7 @@ LT_deps = $(top_builddir)/src/opr/liboafs_opr.la \ LT_libs = # gssapi will go here all: depinstall rxgk_int.cs.c rxgk_int.ss.c rxgk_int.xdr.c rxgk_int.h \ - ${LT_objs} liboafs_rxgk.la libafsrpc_rxgk.la + ${LT_objs} liboafs_rxgk.la librxgk_pic.la generated: \ rxgk_errs.h rxgk_errs.c rxgk_int.h rxgk_int.cs.c rxgk_int.xdr.c \ @@ -56,7 +56,7 @@ rxgk_int.xdr.o: rxgk_int.xdr.c rxgk_int.h liboafs_rxgk.la: liboafs_rxgk.la.sym ${LT_objs} ${LT_deps} $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_rxgk.la: $(LT_objs) +librxgk_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) $(LT_objs): $(INCLS) diff --git a/src/rxkad/Makefile.in b/src/rxkad/Makefile.in index af85a1e3e..9ecf4e4b2 100644 --- a/src/rxkad/Makefile.in +++ b/src/rxkad/Makefile.in @@ -37,7 +37,7 @@ fc_test_LIBS=\ ${TOP_LIBDIR}/liblwp.a \ ${TOP_LIBDIR}/libafsutil.a -all: ${TOP_LIBDIR}/librxkad.a liboafs_rxkad.la libafsrpc_rxkad.la depinstall +all: ${TOP_LIBDIR}/librxkad.a liboafs_rxkad.la librxkad_pic.la depinstall test: fc_test @@ -78,7 +78,7 @@ librxkad.a: $(LT_objs) liboafs_rxkad.la: liboafs_rxkad.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_rxkad.la: $(LT_objs) +librxkad_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) CFLAGS_ticket5.lo = @CFLAGS_NOERROR@ diff --git a/src/rxstat/Makefile.in b/src/rxstat/Makefile.in index a84e7ce5b..97c9bf14d 100644 --- a/src/rxstat/Makefile.in +++ b/src/rxstat/Makefile.in @@ -13,7 +13,7 @@ include @TOP_OBJDIR@/src/config/Makefile.lwptool LT_objs = rxstat.cs.lo rxstat.ss.lo rxstat.xdr.lo rxstat.lo LT_deps = $(top_builddir)/src/rx/liboafs_rx.la -all: depinstall liboafs_rxstat.la libafsrpc_rxstat.la \ +all: depinstall liboafs_rxstat.la librxstat_pic.la \ ${TOP_LIBDIR}/librxstat.a generated: \ @@ -55,7 +55,7 @@ librxstat.a: $(LT_objs) liboafs_rxstat.la: liboafs_rxstat.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libafsrpc_rxstat.la: $(LT_objs) +librxstat_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) Krxstat.cs.c: rxstat.xg diff --git a/src/sys/Makefile.in b/src/sys/Makefile.in index 4eeb6c791..c3c57f15f 100644 --- a/src/sys/Makefile.in +++ b/src/sys/Makefile.in @@ -30,7 +30,7 @@ LT_deps = $(top_builddir)/src/rx/liboafs_rx.la all: \ liboafs_sys.la \ libafsrpc_sys.la \ - libauthent_sys.la \ + libsys_pic.la \ rmtsysd \ ${TOP_INCDIR}/afs/afssyscalls.h \ ${TOP_INCDIR}/afs/afs.exp \ @@ -116,7 +116,7 @@ liboafs_sys.la: liboafs_sys.la.sym $(LT_objs) $(LT_deps) afsl.exp libafsrpc_sys.la: syscall.lo $(LT_LDLIB_pic) syscall.lo -libauthent_sys.la: $(LT_objs) +libsys_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) tests: fixit iinc idec icreate iopen istat rmtsysd diff --git a/src/vlserver/Makefile.in b/src/vlserver/Makefile.in index 91baeb995..8a09bc50d 100644 --- a/src/vlserver/Makefile.in +++ b/src/vlserver/Makefile.in @@ -47,7 +47,7 @@ LT_deps = $(top_builddir)/src/opr/liboafs_opr.la \ all: \ vlserver vlclient cnvldb vlserver cnvldb vldb_check \ Kvldbint.cs.c Kvldbint.xdr.c vldbint.h \ - liboafs_vldb.la libauthent_vlserver.la \ + liboafs_vldb.la libvlserver_pic.la \ ${TOP_LIBDIR}/libvldb.a depinstall generated: \ @@ -133,7 +133,7 @@ libvldb.a: $(LT_objs) liboafs_vldb.la: liboafs_vldb.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_vlserver.la: $(LT_objs) +libvlserver_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) vlclient: vlclient.o libvldb.a $(LIBS) diff --git a/src/volser/Makefile.in b/src/volser/Makefile.in index 16e900e5f..7e9cc78af 100644 --- a/src/volser/Makefile.in +++ b/src/volser/Makefile.in @@ -74,7 +74,7 @@ LT_deps = $(top_builddir)/src/opr/liboafs_opr.la \ all: volserver vos restorevol voldump \ liboafs_volser.la \ - libauthent_volser.la \ + libvolser_pic.la \ ${TOP_INCDIR}/afs/volser.h \ ${TOP_INCDIR}/afs/vsutils_prototypes.h \ ${TOP_INCDIR}/afs/volser_prototypes.h \ @@ -122,7 +122,7 @@ libvolser.a: $(LT_objs) liboafs_volser.la: liboafs_volser.la.sym $(LT_objs) $(LT_deps) $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs) -libauthent_volser.la: $(LT_objs) +libvolser_pic.la: $(LT_objs) $(LT_LDLIB_pic) $(LT_objs) volerr.c: volerr.et -- 2.39.5