lwp: Build a pthreaded compat library with libtool
authorSimon Wilkinson <sxw@your-file-system.com>
Thu, 24 May 2012 21:08:45 +0000 (22:08 +0100)
committerDerrick Brashear <shadow@your-file-system.com>
Sun, 9 Sep 2012 19:44:42 +0000 (12:44 -0700)
The majority of the LWP directory isn't used by pthreaded applications.
However, there are three files - fasttime.c, lock.c and waitkey.c which
are used within pthreaded code.

Eventually, these should live somewhere other than the LWP directory.
For now, just build a small pthreaded library to hold them, so we
can finish up with the libtool work before considering how to move
this code elsewhere.

Change-Id: I66281f7cd838c048fd982bbd0f756a16a10862d1
Reviewed-on: http://gerrit.openafs.org/8069
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/dviced/Makefile.in
src/dvolser/Makefile.in
src/lwp/Makefile.in
src/lwp/liboafs_lwpcompat.la.sym [new file with mode: 0644]
src/tbutc/Makefile.in
src/tsalvaged/Makefile.in
src/tvolser/Makefile.in
src/viced/Makefile.in

index eb44dfd..367ad3b 100644 (file)
@@ -18,7 +18,6 @@ MODULE_CFLAGS=-DRXDEBUG -DFSSYNC_BUILD_SERVER \
 RX=$(srcdir)/../rx
 VICED=$(srcdir)/../viced
 VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
 LIBACL=$(srcdir)/../libacl
 DIR=$(srcdir)/../dir
 VOL=$(srcdir)/../vol
@@ -29,8 +28,6 @@ VICEDOBJS=viced.o afsfileprocs.o host.o physio.o callback.o serialize_state.o \
 
 VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o
 
-LWPOBJS=lock.o threadname.o
-
 LIBACLOBJS=aclprocs.o netprocs.o
 
 DIROBJS=buffer.o dir.o salvage.o
@@ -43,7 +40,7 @@ FSINTOBJS= afsaux.o afscbint.cs.o afsint.ss.o afsint.xdr.o
 
 RXOBJS = rx_pthread.o 
 
-objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
+objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LIBACLOBJS} \
         ${DIROBJS} ${VOLOBJS} ${FSINTOBJS} ${RXOBJS}
 
 SDBGOBJS = state_analyzer.o \
@@ -52,6 +49,7 @@ SDBGOBJS = state_analyzer.o \
 
 LIBS=${TOP_LIBDIR}/libafsauthent.a \
      ${TOP_LIBDIR}/libafsrpc.a \
+     $(top_builddir)/src/lwp/liboafs_lwpcompat.la \
      $(top_builddir)/src/cmd/liboafs_cmd.la \
      $(top_builddir)/src/opr/liboafs_opr.la \
      $(top_builddir)/src/util/liboafs_util.la
@@ -83,12 +81,6 @@ fsstats.o: ${VICED}/fsstats.c
 serialize_state.o: ${VICED}/serialize_state.c
        $(AFS_CCRULE) $(VICED)/serialize_state.c
 
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) $(LWP)/lock.c
-
-threadname.o: ${LWP}/threadname.c
-       $(AFS_CCRULE) $(LWP)/threadname.c
-
 aclprocs.o: ${LIBACL}/aclprocs.c
        $(AFS_CCRULE) $(LIBACL)/aclprocs.c
 
index 19b5253..fdac030 100644 (file)
@@ -14,7 +14,6 @@ HELPER_SPLINT=@HELPER_SPLINT@
 MODULE_CFLAGS=-DRXDEBUG -DFSSYNC_BUILD_CLIENT -DAFS_DEMAND_ATTACH_FS
 
 VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
 LIBACL=$(srcdir)/../libacl
 DIR=$(srcdir)/../dir
 VOL=$(srcdir)/../vol
@@ -25,8 +24,6 @@ VOLSEROBJS=volmain.o volprocs.o physio.o voltrans.o volerr.o volint.cs.o dumpstu
 
 VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o vl_errors.o
 
-LWPOBJS=lock.o threadname.o
-
 LIBACLOBJS=aclprocs.o netprocs.o
 
 DIROBJS=buffer.o dir.o salvage.o
@@ -37,12 +34,13 @@ VOLOBJS= vnode.o volume.o vutil.o partition.o fssync-client.o purge.o \
 
 RXOBJS=rx_pthread.o
 
-objects= ${VOLSEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
+objects= ${VOLSEROBJS} ${LIBACLOBJS} \
         ${DIROBJS} ${VOLOBJS} ${RXOBJS}
 
 LIBS=  $(top_builddir)/src/cmd/liboafs_cmd.la          \
        ${TOP_LIBDIR}/libafsauthent.a   \
        ${TOP_LIBDIR}/libafsrpc.a       \
+       $(top_builddir)/src/lwp/liboafs_lwpcompat.la    \
        $(top_builddir)/src/util/liboafs_util.la        \
        $(top_builddir)/src/opr/liboafs_opr.la          \
        $(top_builddir)/src/usd/liboafs_usd.la
@@ -92,12 +90,6 @@ vsutils.o: ${VOLSER}/vsutils.c
 lockprocs.o: ${VOLSER}/lockprocs.c
        $(AFS_CCRULE) $(VOLSER)/lockprocs.c
 
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) $(LWP)/lock.c
-
-threadname.o: ${LWP}/threadname.c
-       $(AFS_CCRULE) $(LWP)/threadname.c
-
 aclprocs.o: ${LIBACL}/aclprocs.c
        $(AFS_CCRULE) $(LIBACL)/aclprocs.c
 
index af5bdab..2494264 100644 (file)
@@ -9,16 +9,20 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
+include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
 
-
 DBG=${LWP_DBG}
 OPTMZ=${LWP_OPTMZ}
 
-LIBOBJS=lwp.o process.o lock.o iomgr.o timer.o fasttime.o preempt.o \
-       waitkey.o threadname.o AFS_component_version_number.o
+LIBOBJS=lwp.o process.o iomgr.o timer.o preempt.o \
+       threadname.o AFS_component_version_number.o
+
+LT_objs = waitkey.lo fasttime.lo lock.lo
+LT_deps = $(top_builddir)/src/opr/liboafs_opr.la
+LT_libs = $(MT_LIBS)
 
-all: ${TOP_LIBDIR}/liblwp.a depinstall
+all: liboafs_lwpcompat.la ${TOP_LIBDIR}/liblwp.a depinstall
 
 depinstall: ${TOP_INCDIR}/lock.h ${TOP_INCDIR}/lwp.h ${TOP_INCDIR}/preempt.h ${TOP_INCDIR}/timer.h
 
@@ -40,11 +44,14 @@ ${TOP_INCDIR}/timer.h: timer.h
 #
 # Build rules
 #
-liblwp.a: ${LIBOBJS}
+liblwp.a: ${LIBOBJS} $(LT_objs)
        -$(RM) -f $@
-       $(AR) crv $@ ${LIBOBJS}
+       $(AR) crv $@ ${LIBOBJS} .lwp/waitkey.o .lwp/fasttime.o .lwp/lock.o
        $(RANLIB) $@
 
+liboafs_lwpcompat.la: liboafs_lwpcompat.la.sym $(LT_objs) $(LT_deps)
+       $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs)
+
 # This is required so sgi_64+ does not try to build this file.
 process.s:
        @echo Nothing to be done for process.s
@@ -173,9 +180,9 @@ lwp.o               : lwp.c lwp.h
                *)  \
                        $(AFS_CCRULE_NOQ) ${srcdir}/lwp.c;; \
                esac
-lock.o         : lock.c lock.h lwp.h
+lock.lo                : lock.c lock.h lwp.h
 timer.o                : timer.c
-fasttime.o     : fasttime.c
+fasttime.lo    : fasttime.c
 threadname.o    : threadname.c
 
 exc_handling.o : exc_handling.c
@@ -211,6 +218,7 @@ dest: liblwp.a lock.h lwp.h preempt.h timer.h
 # Misc. targets
 #
 clean:
+       $(LT_CLEAN)
        $(RM) -f *.o *.a core AFS_component_version_number.c
 
 include ../config/Makefile.version
diff --git a/src/lwp/liboafs_lwpcompat.la.sym b/src/lwp/liboafs_lwpcompat.la.sym
new file mode 100644 (file)
index 0000000..80e4a53
--- /dev/null
@@ -0,0 +1,9 @@
+FT_ApproxTime
+FT_GetTimeOfDay
+Lock_Init
+Afs_Lock_Obtain
+Afs_Lock_ReleaseR
+Afs_Lock_ReleaseW
+Afs_Lock_WakeupR
+LWP_WaitForKeystroke
+LWP_GetResponseKey
index 6f5d90a..4f7bfa1 100644 (file)
@@ -16,7 +16,6 @@ BUTMINCLS   =${TOP_INCDIR}/afs/com_err.h ${TOP_INCDIR}/afs/butm.h
 
 MODULE_CFLAGS = @XBSA_CFLAGS@ -I${BUCOORD} -I${VOLSER} -I../bucoord -I../volser
 
-LWP     = ${srcdir}/../lwp
 BUTM    = ${srcdir}/../butm
 BUTC    = ${srcdir}/../butc
 BUCOORD = ${srcdir}/../bucoord
@@ -28,11 +27,9 @@ BUCOORDOBJS=ubik_db_if.o ../bucoord/volstub.o ../bucoord/dlq.o \
 VOLSEROBJS=vsprocs.o vsutils.o lockprocs.o
 VOLSERLIBS=${TOP_LIBDIR}/libvosadmin.a ${TOP_LIBDIR}/libafsadminutil.a
 
-LWPOBJS     =lock.o waitkey.o
-
 BUTCOBJS   =dbentries.o tcprocs.o lwps.o tcmain.o list.o recoverDb.o \
            tcudbprocs.o dump.o tcstatus.o butc_xbsa.o afsxbsa.o \
-            ${LWPOBJS} ${BUCOORDOBJS} ${VOLSEROBJS}
+            ${BUCOORDOBJS} ${VOLSEROBJS}
 
 BUTCINCLS=${TOP_INCDIR}/afs/partition.h \
            ${TOP_INCDIR}/afs/volume.h \
@@ -59,6 +56,7 @@ BUTCLIBS=${TOP_LIBDIR}/libbudb.a \
            $(top_builddir)/src/util/liboafs_util.la \
            $(top_builddir)/src/opr/liboafs_opr.la \
            $(top_builddir)/src/usd/liboafs_usd.la \
+           $(top_builddir)/src/lwp/liboafs_lwpcompat.la \
            ${TOP_LIBDIR}/libprocmgmt.a
 
 #
@@ -125,12 +123,6 @@ vsprocs.o: ${VOLSER}/vsprocs.c
 lockprocs.o: ${VOLSER}/lockprocs.c
        $(AFS_CCRULE) ${VOLSER}/lockprocs.c
 
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) ${LWP}/lock.c
-
-waitkey.o: ${LWP}/waitkey.c
-       $(AFS_CCRULE) ${LWP}/waitkey.c
-
 file_tm.o: ${BUTM}/file_tm.c ${BUTMINCLS}
        $(AFS_CCRULE) ${BUTM}/file_tm.c
 
index e1368a3..6ba6e4d 100644 (file)
@@ -22,7 +22,6 @@ SCFLAGS=$(COMMON_CFLAGS) -I.. -DRXDEBUG -DFSSYNC_BUILD_CLIENT \
 
 SCCRULE=${MT_CC} ${SCFLAGS} -c $? -o $@
 
-LWP=$(srcdir)/../lwp
 DIR=$(srcdir)/../dir
 VOL=$(srcdir)/../vol
 
@@ -31,8 +30,6 @@ SALVAGEROBJS=salvager.o s_vol-salvage.o s_physio.o
 
 DIROBJS=buffer.o dir.o salvage.o
 
-LWPOBJS=lock.o threadname.o
-
 VLIBOBJS=volume.o vnode.o vutil.o partition.o fssync-client.o \
         clone.o nuke.o devname.o listinodes.o ihandle.o \
         namei_ops.o salvsync-server.o salvsync-client.o daemon_com.o
@@ -40,17 +37,18 @@ SVLIBOBJS=s_volume.o s_vnode.o s_vutil.o s_partition.o s_fssync-client.o \
         s_clone.o s_nuke.o s_devname.o s_listinodes.o s_ihandle.o \
         s_namei_ops.o s_salvsync-server.o s_salvsync-client.o s_daemon_com.o
 
-OBJECTS= ${SALVAGEDOBJS} ${VLIBOBJS} ${DIROBJS} ${LWPOBJS}
+OBJECTS= ${SALVAGEDOBJS} ${VLIBOBJS} ${DIROBJS}
 SOBJECTS= ${SALVAGEROBJS} ${SVLIBOBJS}
 
-FSSDEBUG_OBJS = fssync-debug.o physio.o common.o ${VLIBOBJS} ${DIROBJS} ${LWPOBJS}
+FSSDEBUG_OBJS = fssync-debug.o physio.o common.o ${VLIBOBJS} ${DIROBJS}
 
-SSSDEBUG_OBJS = salvsync-debug.o physio.o common.o ${VLIBOBJS} ${DIROBJS} ${LWPOBJS}
+SSSDEBUG_OBJS = salvsync-debug.o physio.o common.o ${VLIBOBJS} ${DIROBJS}
 
 LIBS=   ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libafsrpc.a \
        $(top_builddir)/src/util/liboafs_util.la \
        $(top_builddir)/src/cmd/liboafs_cmd.la \
+       $(top_builddir)/src/lwp/liboafs_lwpcompat.la \
        $(top_builddir)/src/opr/liboafs_opr.la
 
 SLIBS= ${top_builddir}/src/cmd/liboafs_cmd.la \
@@ -120,12 +118,6 @@ dir.o: ${DIR}/dir.c
 salvage.o: ${DIR}/salvage.c
        $(AFS_CCRULE) $(DIR)/salvage.c
 
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) $(LWP)/lock.c
-
-threadname.o: ${LWP}/threadname.c
-       $(AFS_CCRULE) $(LWP)/threadname.c
-
 vnode.o: ${VOL}/vnode.c
        $(AFS_CCRULE) $(VOL)/vnode.c
 
index e022ef9..9d9f8c4 100644 (file)
@@ -15,7 +15,6 @@ ENABLE_PTHREADED_UBIK=@ENABLE_PTHREADED_UBIK@
 MODULE_CFLAGS=-DRXDEBUG -DFSSYNC_BUILD_CLIENT
 
 VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
 LIBACL=$(srcdir)/../libacl
 DIR=$(srcdir)/../dir
 VOL=$(srcdir)/../vol
@@ -28,8 +27,6 @@ VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o vl_errors.o
 
 VOSOBJS= vsprocs.o vsutils.o lockprocs.o volint.xdr.o volerr.o volint.cs.o
 
-LWPOBJS=lock.o threadname.o
-
 LIBACLOBJS=aclprocs.o netprocs.o
 
 DIROBJS=buffer.o dir.o salvage.o
@@ -38,10 +35,7 @@ VOLOBJS= vnode.o volume.o vutil.o partition.o fssync-client.o purge.o \
         clone.o devname.o common.o ihandle.o listinodes.o \
         namei_ops.o nuke.o salvsync-client.o daemon_com.o
 
-RXOBJS=rx_pthread.o
-
-objects= ${VOLSEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
-        ${DIROBJS} ${VOLOBJS} ${RXOBJS}
+objects= ${VOLSEROBJS} ${LIBACLOBJS} ${DIROBJS} ${VOLOBJS}
 
 vosobjects= ${VOSOBJS} ${VLSERVEROBJS} ${LIBACLOBJS} ${DIROBJS} \
        ${VOLOBJS} ${RXOBJS}
@@ -59,6 +53,7 @@ LIBS_client = \
        $(LIBS_common)
 
 LIBS_server = \
+       $(top_builddir)/src/lwp/liboafs_lwpcompat.la \
        $(LIBS_common)
 
 all: volserver vos
@@ -106,12 +101,6 @@ vsutils.o: ${VOLSER}/vsutils.c
 lockprocs.o: ${VOLSER}/lockprocs.c
        $(AFS_CCRULE) -I../volser $(VOLSER)/lockprocs.c
 
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) $(LWP)/lock.c
-
-threadname.o: ${LWP}/threadname.c
-       $(AFS_CCRULE) $(LWP)/threadname.c
-
 aclprocs.o: ${LIBACL}/aclprocs.c
        $(AFS_CCRULE) $(LIBACL)/aclprocs.c
 
index 283ebe7..5dad5a3 100644 (file)
@@ -16,7 +16,6 @@ MODULE_CFLAGS = -DRXDEBUG -DFSSYNC_BUILD_SERVER -DSALVSYNC_BUILD_CLIENT
 
 RX=$(srcdir)/../rx
 VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
 LIBACL=$(srcdir)/../libacl
 DIR=$(srcdir)/../dir
 VOL=$(srcdir)/../vol
@@ -27,8 +26,6 @@ VICEDOBJS=viced.o afsfileprocs.o host.o physio.o callback.o serialize_state.o \
 
 VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o
 
-LWPOBJS=lock.o threadname.o
-
 LIBACLOBJS=aclprocs.o netprocs.o
 
 DIROBJS=buffer.o dir.o salvage.o
@@ -41,8 +38,8 @@ FSINTOBJS= afsaux.o afscbint.cs.o afsint.ss.o afsint.xdr.o
 
 RXOBJS = rx_pthread.o
 
-objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
-        ${DIROBJS} ${VOLOBJS} ${FSINTOBJS} ${RXOBJS}
+objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LIBACLOBJS} \
+        ${DIROBJS} ${VOLOBJS} ${FSINTOBJS}
 
 LIBS=${TOP_LIBDIR}/libafsauthent.a \
      ${TOP_LIBDIR}/libafsrpc.a \
@@ -72,16 +69,6 @@ cbd.o: callback.c AFS_component_version_number.c
 cbd: cbd.o
        $(LT_LDRULE_static) cbd.o ${LIBS} $(LIB_roken) ${XLIBS}
 
-CFLAGS_rx_pthread.o = -DDPF_FSLOG
-rx_pthread.o: ${RX}/rx_pthread.c
-       $(AFS_CCRULE) $(RX)/rx_pthread.c
-
-lock.o: ${LWP}/lock.c
-       $(AFS_CCRULE) $(LWP)/lock.c
-
-threadname.o: ${LWP}/threadname.c
-       $(AFS_CCRULE) $(LWP)/threadname.c
-
 aclprocs.o: ${LIBACL}/aclprocs.c
        $(AFS_CCRULE) $(LIBACL)/aclprocs.c