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>
RX=$(srcdir)/../rx
VICED=$(srcdir)/../viced
VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
LIBACL=$(srcdir)/../libacl
DIR=$(srcdir)/../dir
VOL=$(srcdir)/../vol
VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o
-LWPOBJS=lock.o threadname.o
-
LIBACLOBJS=aclprocs.o netprocs.o
DIROBJS=buffer.o dir.o salvage.o
RXOBJS = rx_pthread.o
-objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
+objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LIBACLOBJS} \
${DIROBJS} ${VOLOBJS} ${FSINTOBJS} ${RXOBJS}
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
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
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
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
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
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
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
#
# 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
*) \
$(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
# Misc. targets
#
clean:
+ $(LT_CLEAN)
$(RM) -f *.o *.a core AFS_component_version_number.c
include ../config/Makefile.version
--- /dev/null
+FT_ApproxTime
+FT_GetTimeOfDay
+Lock_Init
+Afs_Lock_Obtain
+Afs_Lock_ReleaseR
+Afs_Lock_ReleaseW
+Afs_Lock_WakeupR
+LWP_WaitForKeystroke
+LWP_GetResponseKey
MODULE_CFLAGS = @XBSA_CFLAGS@ -I${BUCOORD} -I${VOLSER} -I../bucoord -I../volser
-LWP = ${srcdir}/../lwp
BUTM = ${srcdir}/../butm
BUTC = ${srcdir}/../butc
BUCOORD = ${srcdir}/../bucoord
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 \
$(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
#
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
SCCRULE=${MT_CC} ${SCFLAGS} -c $? -o $@
-LWP=$(srcdir)/../lwp
DIR=$(srcdir)/../dir
VOL=$(srcdir)/../vol
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
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 \
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
MODULE_CFLAGS=-DRXDEBUG -DFSSYNC_BUILD_CLIENT
VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
LIBACL=$(srcdir)/../libacl
DIR=$(srcdir)/../dir
VOL=$(srcdir)/../vol
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
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}
$(LIBS_common)
LIBS_server = \
+ $(top_builddir)/src/lwp/liboafs_lwpcompat.la \
$(LIBS_common)
all: volserver vos
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
RX=$(srcdir)/../rx
VLSERVER=$(srcdir)/../vlserver
-LWP=$(srcdir)/../lwp
LIBACL=$(srcdir)/../libacl
DIR=$(srcdir)/../dir
VOL=$(srcdir)/../vol
VLSERVEROBJS=vldbint.cs.o vldbint.xdr.o
-LWPOBJS=lock.o threadname.o
-
LIBACLOBJS=aclprocs.o netprocs.o
DIROBJS=buffer.o dir.o salvage.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 \
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