From 5fce5754cee4f466f99681fcd7f42e5735e9776d Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 28 Oct 2010 01:19:17 -0400 Subject: [PATCH] Windows: Finish converting vol apps to pthread only The src/vol directory on Windows is one of the rare examples where a single directory builds both lwp and pthreaded versions of libraries and executables. With this patchset the executables are fully converted from lwp to pthread. This requires that afsrpc.dll include the pthread implementations of the threadname, fasttime, and lock implementations from the LWP directory. The inclusion within afsrpc.dll permits the dviced and dvolser directories to avoid rebuilding those object modules. Change-Id: I70c6e9ec346b5d9ef05d2400ddaf21e33a0c67a4 Reviewed-on: http://gerrit.openafs.org/3181 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- NTMakefile | 18 +++++++++--------- src/dviced/NTMakefile | 8 +------- src/dvolser/NTMakefile | 7 ------- src/libafsrpc/NTMakefile | 8 +++++++- src/libafsrpc/afsrpc.def | 15 +++++++++++++++ src/vol/NTMakefile | 25 +++++++++++++++++++++---- 6 files changed, 53 insertions(+), 28 deletions(-) diff --git a/NTMakefile b/NTMakefile index 8991345abb..a46dec226a 100644 --- a/NTMakefile +++ b/NTMakefile @@ -354,7 +354,14 @@ dir: butm $(NTMAKE) $(CD) ..\.. -vol: dir +libafsrpc: dir + @echo ***** $@ + $(DOCD) $(SRC)\$@ + $(CD) $(SRC)\$@ + $(NTMAKE) + $(CD) ..\.. + +vol: libafsrpc @echo ***** $@ $(DOCD) $(SRC)\$@ $(CD) $(SRC)\$@ @@ -417,14 +424,7 @@ bu_utils: bosctlsvc $(NTMAKE) $(CD) ..\.. -libafsrpc: bu_utils - @echo ***** $@ - $(DOCD) $(SRC)\$@ - $(CD) $(SRC)\$@ - $(NTMAKE) - $(CD) ..\.. - -libafsauthent: libafsrpc +libafsauthent: bu_utils @echo ***** $@ $(DOCD) $(SRC)\$@ $(CD) $(SRC)\$@ diff --git a/src/dviced/NTMakefile b/src/dviced/NTMakefile index 0d9ff5b319..3a96b61f4c 100644 --- a/src/dviced/NTMakefile +++ b/src/dviced/NTMakefile @@ -18,7 +18,6 @@ EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\dafileserver.exe VICED = ..\viced TVICED = ..\tviced -LWP = ..\lwp LIBACL = ..\libacl DIR = ..\dir FSINT = ..\fsint @@ -33,15 +32,13 @@ TVICEDOBJS = $(OUT)\serialize_state.obj DAFS_VICEDRES = $(OUT)\dafileserver.res -LWPOBJS = $(OUT)\lock.obj $(OUT)\fasttime.obj $(OUT)\threadname.obj - LIBACLOBJS = $(OUT)\aclprocs.obj $(OUT)\netprocs.obj DIROBJS = $(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj FSINTOBJS = $(OUT)\afsaux.obj $(OUT)\afscbint.cs.obj $(OUT)\afsint.ss.obj $(OUT)\afsint.xdr.obj -EXEOBJS = $(VICEDOBJS) $(TVICEDOBJS) $(DAFS_VICEDRES) $(LWPOBJS) $(LIBACLOBJS) \ +EXEOBJS = $(VICEDOBJS) $(TVICEDOBJS) $(DAFS_VICEDRES) $(LIBACLOBJS) \ $(DIROBJS) $(FSINTOBJS) $(RXOBJS) noversion: install @@ -60,9 +57,6 @@ $(DAFS_VICEDRES): dafileserver.rc AFS_component_version_number.h $(TVICEDOBJS): $(TVICED)\$$(@B).c $(C2OBJ) -I$(TVICED) $** -$(LWPOBJS): $(LWP)\$$(@B).C - $(C2OBJ) -I$(LWP) $** - $(LIBACLOBJS): $(LIBACL)\$$(@B).C $(C2OBJ) -I$(LIBACL) $** diff --git a/src/dvolser/NTMakefile b/src/dvolser/NTMakefile index c55c854487..ee4dda731c 100644 --- a/src/dvolser/NTMakefile +++ b/src/dvolser/NTMakefile @@ -14,7 +14,6 @@ RELDIR=dvolser VOLSER = ..\volser DVOLSER = . VLSERVER = ..\vlserver -LWP = ..\lwp LIBACL = ..\libacl UTIL = ..\util DIR = ..\dir @@ -68,15 +67,12 @@ VOLSERVER_EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\davolserver.exe VOLSEROBJS=$(OUT)\volmain.obj $(OUT)\volprocs.obj $(OUT)\physio.obj $(OUT)\voltrans.obj $(OUT)\dumpstuff.obj -LWPOBJS=$(OUT)\lock.obj $(OUT)\threadname.obj $(OUT)\fasttime.obj - LIBACLOBJS=$(OUT)\aclprocs.obj $(OUT)\netprocs.obj DIROBJS=$(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj VOLSERVER_EXEOBJS = $(VOLSEROBJS) \ $(VLSERVEROBJS) \ - $(LWPOBJS) \ $(LIBACLOBJS) \ $(DIROBJS) \ $(FSINTOBJS) \ @@ -110,9 +106,6 @@ $(OUT)\vscommon.obj: $(VOLSER)\common.c $(VOLSEROBJS): $(VOLSER)\$$(@B).c $(C2OBJ) -I$(VOLSER) -I$(UTIL) $** -$(LWPOBJS): $(LWP)\$$(@B).C - $(C2OBJ) -I$(LWP) $** - $(LIBACLOBJS): $(LIBACL)\$$(@B).C $(C2OBJ) -I$(LIBACL) $** diff --git a/src/libafsrpc/NTMakefile b/src/libafsrpc/NTMakefile index ab01925ecb..2dd2ac08a2 100644 --- a/src/libafsrpc/NTMakefile +++ b/src/libafsrpc/NTMakefile @@ -17,6 +17,7 @@ DES = ..\des UTIL = ..\util FSINT = ..\fsint COMERR = ..\comerr +LWP = ..\lwp # Additional debugging flag for RX. !IF ("$(AFSDEV_BUILDTYPE)" == "CHECKED") @@ -56,12 +57,14 @@ UTILOBJS = $(OUT)\casestrcpy.obj $(OUT)\winsock_nt.obj COMERRBJS = $(OUT)\error_msg.obj $(OUT)\et_name.obj $(OUT)\com_err.obj +LWPOBJS = $(OUT)\lock.obj $(OUT)\fasttime.obj $(OUT)\threadname.obj + FSINTBJS = $(OUT)\afsint.cs.obj $(OUT)\afsint.xdr.obj $(OUT)\afscbint.cs.obj $(OUT)\afscbint.xdr.obj \ $(OUT)\afsaux.obj DLLOBJS = $(MULTIOBJS) $(RXOBJS) $(XDROBJS) $(RXSTATBJS) $(LIBRXKAD_OBJS) \ $(DESOBJS) $(LIBRXKAD_REGOBJS) $(UTILBJS) $(COMERRBJS) \ - $(FSINTBJS) $(OUT)\afsrpc.res + $(FSINTBJS) $(LWPOBJS) $(OUT)\afsrpc.res $(MULTIOBJS) $(RXOBJS) $(XDROBJS):$(RX)\$$(@B).c $(C2OBJ) $** -I$(RX) @@ -87,6 +90,9 @@ $(FSINTBJS):$(FSINT)\$$(@B).c $(UTILOBJS):$(UTIL)\$$(@B).c $(C2OBJ) $** -I$(UTIL) +$(LWPOBJS): $(LWP)\$$(@B).C + $(C2OBJ) $** -I$(LWP) + NTMAKE = nmake /nologo /f ntmakefile diff --git a/src/libafsrpc/afsrpc.def b/src/libafsrpc/afsrpc.def index f87a057e3e..048fb1e2c7 100755 --- a/src/libafsrpc/afsrpc.def +++ b/src/libafsrpc/afsrpc.def @@ -269,6 +269,21 @@ EXPORTS rx_InterruptCall @274 osi_Panic @275 +; lwp functions + Afs_Lock_Obtain @276 + Afs_Lock_ReleaseR @277 + Afs_Lock_ReleaseW @278 + Afs_Lock_WakeupR @279 + Lock_Init @280 + Lock_Destroy @281 + FT_Init @282 + FT_GetTimeOfDay @283 + FT_AGetTimeOfDay @284 + FT_ApproxTime @285 + threadname @286 + registerthread @287 + swapthreadname @288 + ; for performance testing rx_TSFPQGlobSize @2001 DATA rx_TSFPQLocalMax @2002 DATA diff --git a/src/vol/NTMakefile b/src/vol/NTMakefile index cba51dd595..d149662617 100644 --- a/src/vol/NTMakefile +++ b/src/vol/NTMakefile @@ -170,11 +170,10 @@ $(DAFS_LIBFILE): $(DAFS_LIBOBJS) EXEC_LIBS = \ $(DESTDIR)\lib\afs\afscmd.lib \ - $(DESTDIR)\lib\afs\afsvol.lib \ - $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afs\mtafsvol.lib \ + $(DESTDIR)\lib\afs\mtafsutil.lib \ + $(DESTDIR)\lib\afsrpc.lib \ $(DESTDIR)\lib\afs\afsdir.lib \ - $(DESTDIR)\lib\afsrx.lib \ - $(DESTDIR)\lib\afslwp.lib \ $(DESTDIR)\lib\afs\afsacl.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ $(DESTDIR)\lib\afs\afsprocmgmt.lib \ @@ -185,6 +184,15 @@ EXEC_LIBS = \ # build salvager SALVAGER = $(DESTDIR)\root.server\usr\afs\bin\salvager.exe +$(OUT)\salvager.obj: salvager.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\vol-salvage.obj: vol-salvage.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\physio.obj: physio.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + SALVAGER_EXEOBJS =\ $(OUT)\salvager.obj \ $(OUT)\vol-salvage.obj \ @@ -204,6 +212,9 @@ $(SALVAGER): $(SALVAGER_EXEOBJS) $(EXEC_LIBS) # build fssync-debug FSSYNC_DEBUG = $(DESTDIR)\root.server\usr\afs\bin\fssync-debug.exe +$(OUT)\fssync-debug.obj: fssync-debug.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + FSSYNC_DEBUG_EXEOBJS =\ $(OUT)\fssync-debug.obj \ $(OUT)\AFS_component_version_number.obj \ @@ -220,6 +231,9 @@ $(FSSYNC_DEBUG): $(FSSYNC_DEBUG_EXEOBJS) $(EXEC_LIBS) # build volinfo VOLINFO = $(DESTDIR)\root.server\usr\afs\bin\volinfo.exe +$(OUT)\vol-info.obj: vol-info.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + $(VOLINFO): $(OUT)\vol-info.obj $(OUT)\physio.obj $(OUT)\volinfo.res $(EXEC_LIBS) $(EXECONLINK) shell32.lib $(_VC_MANIFEST_EMBED_EXE) @@ -231,6 +245,9 @@ $(VOLINFO): $(OUT)\vol-info.obj $(OUT)\physio.obj $(OUT)\volinfo.res $(EXEC_LIBS # build volinfo VOLBLESS = $(DESTDIR)\root.server\usr\afs\bin\vol-bless.exe +$(OUT)\vol-bless.obj: vol-bless.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + $(VOLBLESS): $(OUT)\vol-bless.obj $(OUT)\physio.obj $(OUT)\vol-bless.res $(EXEC_LIBS) $(EXECONLINK) shell32.lib $(_VC_MANIFEST_EMBED_EXE)