From 6d6390338c7b3eadb725f916464ddb7d3b3e7b09 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 13 Jul 2009 21:24:58 -0400 Subject: [PATCH 1/1] Improve Windows Build System By Using MT-safe Versions of Libraries For many years the Windows Build System has incorrectly mixed some Pthread and LWP code. One of the side effects of this mixing was the need for the EXT2 extern macro definition in src/rx/rx_globals.h which permitted the LWP compiled routines to link with the Pthreaded afsrpc library. This commit creates or modifies multi-threaded versions of various libraries including mtafsubik.lib, mtafsutil.lib, mtafsvldb.lib, and mtafsvol.lib. All of the threaded servers now make use of these libraries. This reduces the number of times that many source files were recompiled for each server directory. util_GetInt32 was defined in both src/util/volparse.c and src/WINNT/afsd/fs_utils.c. Now that mtafsutil.lib is being used within src/WINNT/afsd there is no need to maintain the duplicate copy. The export list for afsauthent.def now includes all of the ubik_PR_xxxx function variants and afsrpc.def now include rxi_CallError as it is linked to outside the rx library. The top-level NTMakefile has been modified to permit the tree to build with the new header and library dependencies. The threaded volserver which never built before now does. LICENSE MIT Reviewed-on: http://gerrit.openafs.org/77 Verified-by: Russ Allbery Reviewed-by: Russ Allbery Verified-by: Derrick Brashear Reviewed-by: Derrick Brashear Reviewed-by: Asanka Herath Verified-by: Asanka Herath Verified-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- src/NTMakefile | 34 +++++++++----- src/WINNT/afsd/NTMakefile | 5 +-- src/WINNT/afsd/fs_utils.c | 45 ------------------- src/config/NTMakefile | 3 ++ src/libafsauthent/afsauthent.def | 25 ++++++++++- src/libafsrpc/afsrpc.def | 1 + src/rx/rx_globals.h | 12 +++-- src/tbutc/NTMakefile | 28 ++---------- src/tviced/NTMakefile | 34 ++++---------- src/tvolser/NTMakefile | 97 ++++++++++++++++++++++++++-------------- src/ubik/NTMakefile | 40 ++++++++++++++++- src/util/NTMakefile | 43 +++++++++++++++++- src/vol/NTMakefile | 53 +++++++++++++++++++++- 13 files changed, 265 insertions(+), 155 deletions(-) diff --git a/src/NTMakefile b/src/NTMakefile index 59c640e..1e8bd86 100644 --- a/src/NTMakefile +++ b/src/NTMakefile @@ -81,7 +81,21 @@ rx_headers: $(NTMAKE_HEADERS) $(CD) ..\.. -util: procmgmt_headers afsreg_headers lwp_headers rx_headers +util_headers: + @echo ***** $@ + $(DOCD) $(SRC)\util + $(CD) $(SRC)\util + $(NTMAKE_HEADERS) + $(CD) ..\.. + +pthread: util_headers + @echo ***** $@ + $(DOCD) $(SRC)\WINNT\$@ + $(CD) $(SRC)\WINNT\$@ + $(NTMAKE) + $(CD) ..\..\.. + +util: procmgmt_headers afsreg_headers lwp_headers rx_headers pthread @echo ***** $@ $(DOCD) $(SRC)\$@ $(CD) $(SRC)\$@ @@ -186,14 +200,7 @@ rxkad: rxstat $(NTMAKE) $(CD) ..\.. -pthread: rxkad - @echo ***** $@ - $(DOCD) $(SRC)\WINNT\$@ - $(CD) $(SRC)\WINNT\$@ - $(NTMAKE) - $(CD) ..\..\.. - -procmgmt: pthread +procmgmt: rxkad @echo ***** $@ $(DOCD) $(SRC)\$@ $(CD) $(SRC)\$@ @@ -423,7 +430,14 @@ tviced: libafsauthent $(NTMAKE) $(CD) ..\.. -tbutc: tviced +tvolser: tviced + @echo ***** $@ + $(DOCD) $(SRC)\$@ + $(CD) $(SRC)\$@ + $(NTMAKE) + $(CD) ..\.. + +tbutc: tvolser @echo ***** $@ $(DOCD) $(SRC)\$@ $(CD) $(SRC)\$@ diff --git a/src/WINNT/afsd/NTMakefile b/src/WINNT/afsd/NTMakefile index 3ff5122..5a59510 100644 --- a/src/WINNT/afsd/NTMakefile +++ b/src/WINNT/afsd/NTMakefile @@ -380,7 +380,7 @@ AFSD_EXELIBS =\ $(DESTDIR)\lib\afs\mtafsvldb.lib \ $(DESTDIR)\lib\afs\mtafsint.lib \ $(DESTDIR)\lib\afsrpc.lib \ - $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afs\mtafsutil.lib \ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\libafsconf.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ @@ -453,10 +453,9 @@ KPASSWD_OBJS =\ KPASSWD_LIBS =\ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\afsrpc.lib \ - $(DESTDIR)\lib\afsrx.lib \ $(DESTDIR)\lib\afs\afscmd.lib \ $(DESTDIR)\lib\afsdes.lib \ - $(DESTDIR)\lib\afs\afsutil.lib + $(DESTDIR)\lib\afs\mtafsutil.lib $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $** diff --git a/src/WINNT/afsd/fs_utils.c b/src/WINNT/afsd/fs_utils.c index 84c990a..9f18f78 100644 --- a/src/WINNT/afsd/fs_utils.c +++ b/src/WINNT/afsd/fs_utils.c @@ -140,51 +140,6 @@ static int getmeta(int ac) { return 0; } -afs_int32 util_GetInt32 (char *as, afs_int32 *aval) -{ - register long total; - register int tc; - int base; - int negative; - - total = 0; /* initialize things */ - negative = 0; - - /* skip over leading spaces */ - while (tc = *as) { - if (tc != ' ' && tc != '\t') break; - } - - /* compute sign */ - if (*as == '-') { - negative = 1; - as++; /* skip over character */ - } - - /* compute the base */ - if (*as == '0') { - as++; - if (*as == 'x' || *as == 'X') { - base = 16; - as++; - } - else base = 8; - } - else base = 10; - - /* compute the # itself */ - while(tc = *as) { - if (!ismeta(base, tc)) return -1; - total *= base; - total += getmeta(tc); - as++; - } - - if (negative) *aval = -total; - else *aval = total; - return 0; -} - char *cm_mount_root="afs"; char *cm_slash_mount_root="/afs"; char *cm_back_slash_mount_root="\\afs"; diff --git a/src/config/NTMakefile b/src/config/NTMakefile index 52b6a2a..8b9aa88 100644 --- a/src/config/NTMakefile +++ b/src/config/NTMakefile @@ -200,6 +200,9 @@ idirs: doclink ! IF (!EXIST($(OJT)\tviced)) $(MKDIR) $(OJT)\tviced ! ENDIF +! IF (!EXIST($(OJT)\tvolser)) + $(MKDIR) $(OJT)\tvolser +! ENDIF ! IF (!EXIST($(OJT)\ubik)) $(MKDIR) $(OJT)\ubik ! ENDIF diff --git a/src/libafsauthent/afsauthent.def b/src/libafsauthent/afsauthent.def index 7cb09b0..cd33f9f 100644 --- a/src/libafsauthent/afsauthent.def +++ b/src/libafsauthent/afsauthent.def @@ -54,7 +54,7 @@ EXPORTS pthread_recursive_mutex_unlock @53 grmutex @54 DATA initAFSDirPath @55 - renamefile @56 +; renamefile @56 opendir @57 readdir @58 closedir @59 @@ -116,3 +116,26 @@ EXPORTS ubik_RefreshConn @114 rx_SetSecurityConfiguration @115 pioctl_utf8 @116 + ubik_PR_INewEntry @117 + ubik_PR_WhereIsIt @118 + ubik_PR_DumpEntry @119 + ubik_PR_AddToGroup @120 + ubik_PR_NameToID @121 + ubik_PR_IDToName @122 + ubik_PR_Delete @123 + ubik_PR_RemoveFromGroup @124 + ubik_PR_GetCPS @125 + ubik_PR_NewEntry @126 + ubik_PR_ListMax @127 + ubik_PR_SetMax @128 + ubik_PR_ListEntry @129 + ubik_PR_ChangeEntry @130 + ubik_PR_ListElements @131 + ubik_PR_IsAMemberOf @132 + ubik_PR_SetFieldsEntry @133 + ubik_PR_ListOwned @134 + ubik_PR_GetCPS2 @135 + ubik_PR_GetHostCPS @136 + ubik_PR_UpdateEntry @137 + ubik_PR_ListEntries @138 + ubik_PR_ListSuperGroups @139 diff --git a/src/libafsrpc/afsrpc.def b/src/libafsrpc/afsrpc.def index f0e7d4e..e727d04 100644 --- a/src/libafsrpc/afsrpc.def +++ b/src/libafsrpc/afsrpc.def @@ -246,6 +246,7 @@ EXPORTS rx_WriteProc32 @251 xdr_free @252 RXAFS_FsCmd @253 + rxi_CallError @254 ; for performance testing rx_TSFPQGlobSize @2001 DATA diff --git a/src/rx/rx_globals.h b/src/rx/rx_globals.h index 2ebeea3..94b544f 100644 --- a/src/rx/rx_globals.h +++ b/src/rx/rx_globals.h @@ -25,14 +25,12 @@ #define RX_STATS_INTERLOCKED 1 #if defined(AFS_PTHREAD_ENV) #define EXT __declspec(dllimport) extern -#else +#else /* AFS_PTHREAD_ENV */ #define EXT extern -#endif -#define EXT2 __declspec(dllimport) extern -#else -#define EXT2 extern +#endif /* AFS_PTHREAD_ENV */ +#else /* AFS_NT40_ENV */ #define EXT extern -#endif +#endif /* AFS_NT40_ENV */ #endif /* !GLOBALSINIT */ /* Basic socket for client requests; other sockets (for receiving server requests) are in the service structures */ @@ -617,7 +615,7 @@ EXT afs_kmutex_t rx_pthread_mutex; /* used to protect pthread counters */ EXT afs_kmutex_t rx_packets_mutex; /* used to protect packet counters */ #endif -EXT2 int rx_enable_stats GLOBALSINIT(0); +EXT int rx_enable_stats GLOBALSINIT(0); /* * Set this flag to enable the listener thread to trade places with an idle diff --git a/src/tbutc/NTMakefile b/src/tbutc/NTMakefile index 11b4500..bd04c80 100644 --- a/src/tbutc/NTMakefile +++ b/src/tbutc/NTMakefile @@ -29,7 +29,7 @@ FSINT =..\fsint BUTM =..\butm BUTC =..\butc BUCOORD = ..\bucoord -VOLSER = ..\volser +VOLSER = ..\tvolser BUCOORDOBJS = $(OUT)\ubik_db_if.obj \ $(OUT)\$(BUCOORD)\volstub.obj \ @@ -37,16 +37,6 @@ BUCOORDOBJS = $(OUT)\ubik_db_if.obj \ $(OUT)\$(BUCOORD)\status.obj \ $(OUT)\$(BUCOORD)\bucoord_errs.obj -VOLSERLIBOBJ = $(OUT)\$(VOLSER)\volint.cs.obj \ - $(OUT)\vsprocs.obj \ - $(OUT)\$(VOLSER)\vsutils.obj \ - $(OUT)\$(VOLSER)\lockprocs.obj \ - $(OUT)\$(VOLSER)\volint.xdr.obj \ - $(OUT)\$(VOLSER)\volerr.obj \ - $(OUT)\$(VOLSER)\volint.ss.obj \ - $(OUT)\AFS_component_version_number.obj -VOLSERLIBS = $(OUT)\afstvolser.lib - LWPOBJS = $(OUT)\lock.obj BUTMOBJS = $(OUT)\file_tm.obj \ @@ -72,14 +62,14 @@ BUTCRES = $(OUT)\butc.res BUTCINCLUDE= -I. -I$(DESTDIR)\include -I$(XBSADIR) BUTCLIBS=$(DESTDIR)\lib\afs\afsbudb.lib \ $(DESTDIR)\lib\afs\afsbubasics.lib \ - $(VOLSERLIBS) \ + $(DESTDIR)\lib\afs\afstvolser.lib \ $(BUTMLIBS) \ - $(DESTDIR)\lib\afs\afsvldb.lib \ + $(DESTDIR)\lib\afs\mtafsvldb.lib \ $(DESTDIR)\lib\afs\afskauth.lib \ $(DESTDIR)\lib\afs\afsauth.lib \ $(DESTDIR)\lib\afsrpc.lib \ $(DESTDIR)\lib\afsrxkad.lib \ - $(DESTDIR)\lib\afsubik.lib \ + $(DESTDIR)\lib\afs\mtafsubik.lib \ $(DESTDIR)\lib\afs\afsutil.lib \ $(DESTDIR)\lib\afs\afsusd.lib \ $(DESTDIR)\lib\afs\afspioctl.lib \ @@ -147,16 +137,6 @@ $(OUT)\butc_xbsa.obj: $(BUTC)/butc_xbsa.c $(OUT)\ubik_db_if.obj: $(BUCOORD)/ubik_db_if.c $(C2OBJ) -I$(BUCOORD) $** -#----------------------------------------------- VOLSER -# Build the afstvolser.lib library here. The file compiled -# for is is vsprocs.c. The rest are from the VOLSER dir. - -$(OUT)\afstvolser.lib: $(VOLSERLIBOBJ) - $(LIBARCH) - -$(OUT)\vsprocs.obj: $(VOLSER)/vsprocs.c - $(C2OBJ) $** - #----------------------------------------------- LWP $(OUT)\lock.obj: $(LWP)/lock.c diff --git a/src/tviced/NTMakefile b/src/tviced/NTMakefile index 5acfd10..0cf3ebe 100644 --- a/src/tviced/NTMakefile +++ b/src/tviced/NTMakefile @@ -20,12 +20,9 @@ EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\fileserver.exe VICED = ..\viced TVICED = . -VLSERVER = ..\vlserver LWP = ..\lwp LIBACL = ..\libacl -UTIL = ..\util DIR = ..\dir -VOL = ..\vol FSINT = ..\fsint RX = ..\rx @@ -33,28 +30,21 @@ RXOBJS = $(OUT)\xdr_int64.obj \ $(OUT)\xdr_int32.obj VICEDOBJS = $(OUT)\viced.obj $(OUT)\afsfileprocs.obj $(OUT)\host.obj $(OUT)\physio.obj $(OUT)\callback.obj + TVICEDRES = $(OUT)\fileserver.res TVICEDOBJS = $(OUT)\serialize_state.obj -VLSERVEROBJS = $(OUT)\vldbint.cs.obj $(OUT)\vldbint.xdr.obj - LWPOBJS = $(OUT)\lock.obj $(OUT)\fasttime.obj $(OUT)\threadname.obj LIBACLOBJS = $(OUT)\aclprocs.obj $(OUT)\netprocs.obj -UTILOBJS = $(OUT)\assert.obj $(OUT)\uuid.obj $(OUT)\serverLog.obj $(OUT)\fileutil.obj - DIROBJS = $(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj -VOLOBJS = $(OUT)\vnode.obj $(OUT)\volume.obj $(OUT)\vutil.obj $(OUT)\partition.obj \ - $(OUT)\clone.obj $(OUT)\common.obj $(OUT)\ihandle.obj $(OUT)\ntops.obj \ - $(OUT)\fssync-server.obj $(OUT)\fssync-client.obj $(OUT)\daemon_com.obj - FSINTOBJS = $(OUT)\afsaux.obj $(OUT)\afscbint.cs.obj $(OUT)\afsint.ss.obj $(OUT)\afsint.xdr.obj -EXEOBJS = $(VICEDOBJS) $(TVICEDRES) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) \ - $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS) $(RXOBJS) #$(TVICEDOBJS) +EXEOBJS = $(VICEDOBJS) $(TVICEDRES) $(LWPOBJS) $(LIBACLOBJS) \ + $(DIROBJS) $(FSINTOBJS) $(RXOBJS) #$(TVICEDOBJS) noversion: install @@ -64,16 +54,13 @@ $(RXOBJS): $(RX)\$$(@B).c $(C2OBJ) -I$(RX) $** $(VICEDOBJS): $(VICED)\$$(@B).c - $(C2OBJ) -I$(VICED) -I$(UTIL) $** + $(C2OBJ) -I$(VICED) $** $(TVICEDRES): $(VICED)\fileserver.rc AFS_component_version_number.h $(RC) /fo $(TVICEDRES) $(VICED)\fileserver.rc $(TVICEDOBJS): $(TVICED)\$$(@B).c - $(C2OBJ) -I$(TVICED) -I$(UTIL) $** - -$(UTILOBJS): $(UTIL)\$$(@B).c - $(C2OBJ) -I$(UTIL) $** + $(C2OBJ) -I$(TVICED) $** $(LWPOBJS): $(LWP)\$$(@B).C $(C2OBJ) -I$(LWP) $** @@ -81,21 +68,14 @@ $(LWPOBJS): $(LWP)\$$(@B).C $(LIBACLOBJS): $(LIBACL)\$$(@B).C $(C2OBJ) -I$(LIBACL) $** -$(VLSERVEROBJS): $(VLSERVER)\$$(@B).C - $(C2OBJ) -I$(VLSERVER) $** - $(DIROBJS): $(DIR)\$$(@B).C $(C2OBJ) -I$(DIR) $** -$(VOLOBJS): $(VOL)\$$(@B).C - $(C2OBJ) -I$(VOL) $** - $(FSINTOBJS): $(FSINT)\$$(@B).C $(C2OBJ) -I$(FSINT) $** EXELIBS = \ $(DESTDIR)\lib\afsauthent.lib \ - $(DESTDIR)\lib\afs\afsprot.lib \ $(DESTDIR)\lib\afsrpc.lib \ $(DESTDIR)\lib\afs\afscmd.lib \ $(DESTDIR)\lib\afs\afsaudit.lib \ @@ -103,7 +83,9 @@ EXELIBS = \ $(DESTDIR)\lib\afs\afsreg.lib \ $(DESTDIR)\lib\afs\afsprocmgmt.lib \ $(DESTDIR)\lib\afs\afseventlog.lib \ - $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afs\mtafsutil.lib \ + $(DESTDIR)\lib\afs\mtafsvol.lib \ + $(DESTDIR)\lib\afs\mtafsvldb.lib \ $(DESTDIR)\lib\afspthread.lib $(EXEFILE): $(EXEOBJS) $(EXELIBS) diff --git a/src/tvolser/NTMakefile b/src/tvolser/NTMakefile index 64bcb2d..cad8a55 100644 --- a/src/tvolser/NTMakefile +++ b/src/tvolser/NTMakefile @@ -10,15 +10,16 @@ AFSDEV_AUXCDEFINES = -DAFS_PTHREAD_ENV -DRXDEBUG -DFSSYNC_BUILD_CLIENT RELDIR=tvolser !INCLUDE ..\config\NTMakefile.$(SYS_NAME) !INCLUDE ..\config\NTMakefile.version + SRC_DIR = ..\volser -VICED = ..\viced +VOLSER = ..\volser +TVOLSER = . VLSERVER = ..\vlserver LWP = ..\lwp LIBACL = ..\libacl UTIL = ..\util DIR = ..\dir -VOLSER = ..\volser VOL = ..\vol FSINT = ..\fsint RX = ..\rx @@ -33,87 +34,115 @@ INCFILES = \ $(INCFILEDIR)\volser.h \ $(INCFILEDIR)\volint.h - LOCAL_INCFILES = \ volser.h \ volint.h ############################################################################ +# Build afstvolser.lib + +LIBFILE = $(DESTDIR)\lib\afs\afstvolser.lib + +LIBOBJS = $(OUT)\volint.cs.obj \ + $(OUT)\vsprocs.obj \ + $(OUT)\vsutils.obj \ + $(OUT)\lockprocs.obj \ + $(OUT)\volint.xdr.obj \ + $(OUT)\volerr.obj \ + $(OUT)\volint.ss.obj \ + $(OUT)\AFS_component_version_number.obj + +$(LIBOBJS): $(VOLSER)\$$(@B).c + $(C2OBJ) -I$(TVOLSER) -I$(UTIL) $** + +$(LIBFILE): $(LIBOBJS) + $(LIBARCH) + + +############################################################################ # Build volserver VOLSERVER_EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\volserver.exe -VOLSEROBJS=$(OUT)\volmain.obj $(OUT)\volprocs.obj $(OUT)\physio.obj $(OUT)\voltrans.obj $(OUT)\volerr.obj $(OUT)\volint.cs.obj $(OUT)\dumpstuff.obj $(OUT)\volint.ss.obj $(OUT)\volint.xdr.obj $(OUT)\vscommon.obj +VOLSEROBJS=$(OUT)\volmain.obj $(OUT)\volprocs.obj $(OUT)\physio.obj $(OUT)\voltrans.obj $(OUT)\dumpstuff.obj -LWPOBJS=$(OUT)\lock.obj $(OUT)\threadname.obj +LWPOBJS=$(OUT)\lock.obj $(OUT)\threadname.obj $(OUT)\fasttime.obj LIBACLOBJS=$(OUT)\aclprocs.obj $(OUT)\netprocs.obj -UTILOBJS=$(OUT)\assert.obj $(OUT)\uuid.obj $(OUT)\serverLog.obj $(OUT)\fileutil.obj $(OUT)\netutils.obj $(OUT)\dirpath.obj $(OUT)\volparse.obj $(OUT)\flipbase64.obj $(OUT)\softsig.obj - DIROBJS=$(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj -VOLOBJS= $(OUT)\vnode.obj $(OUT)\volume.obj $(OUT)\vutil.obj $(OUT)\partition.obj $(OUT)\fssync-client.obj $(OUT)\purge.obj $(OUT)\clone.obj $(OUT)\devname.obj $(OUT)\common.obj $(OUT)\ihandle.obj $(OUT)\listinodes.obj $(OUT)\namei_ops.obj $(OUT)\nuke.obj $(OUT)\salvsync-client.obj $(OUT)\daemon_com.obj - - -VOLSERVER_EXEOBJS = $(VOLSEROBJS) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS) +VOLSERVER_EXEOBJS = $(VOLSEROBJS) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) $(DIROBJS) $(FSINTOBJS) $(OUT)\vscommon.obj VOLSERVER_EXELIBS = \ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\afsrpc.lib \ + $(DESTDIR)\lib\afs\afstvolser.lib \ + $(DESTDIR)\lib\afs\mtafsvol.lib \ $(DESTDIR)\lib\afs\afscmd.lib \ $(DESTDIR)\lib\afs\afsaudit.lib \ $(DESTDIR)\lib/afs/afscom_err.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ $(DESTDIR)\lib\afs\afsprocmgmt.lib \ $(DESTDIR)\lib\afs\afseventlog.lib \ - $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afs\mtafsutil.lib \ $(DESTDIR)\lib\afspthread.lib $(VOLSERVER_EXEFILE): $(VOLSERVER_EXEOBJS) $(VOLSERVER_EXELIBS) - $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib + $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib $(_VC_MANIFEST_EMBED_EXE) $(EXEPREP) $(CODESIGN_USERLAND) +$(OUT)\vscommon.obj: $(VOLSER)\common.c + $(C2OBJ) /Fo$(OUT)\vscommon.obj -I$(VOLSER) -I$(UTIL) $** + $(VOLSEROBJS): $(VOLSER)\$$(@B).c $(C2OBJ) -I$(VOLSER) -I$(UTIL) $** -$(VICEDOBJS): $(VICED)\$$(@B).c - $(C2OBJ) -I$(VICED) -I$(UTIL) $** - -$(UTILOBJS): $(UTIL)\$$(@B).c - $(C2OBJ) -I$(UTIL) $** - $(LWPOBJS): $(LWP)\$$(@B).C $(C2OBJ) -I$(LWP) $** $(LIBACLOBJS): $(LIBACL)\$$(@B).C $(C2OBJ) -I$(LIBACL) $** -$(UTILOBJS): $(UTILACL)\$$(@B).C - $(C2OBJ) -I$(UTILACL) $** - -$(VLSERVEROBJS): $(VLSERVER)\$$(@B).C - $(C2OBJ) -I$(VLSERVER) $** - $(DIROBJS): $(DIR)\$$(@B).C $(C2OBJ) -I$(DIR) $** -$(VOLOBJS): $(VOL)\$$(@B).C - $(C2OBJ) -I$(VOL) $** - -$(FSINTOBJS): $(FSINT)\$$(@B).C - $(C2OBJ) -I$(FSINT) $** - ############################################################################ # Generate versioninfo resources $(OUT)\volserver.res: AFS_component_version_number.h ############################################################################ +# Definitions for generating files via RXGEN + +volint.cs.c: $(VOLSER)\volint.xg volint.h + $(RXGEN) -x -C -o $@ $(VOLSER)\volint.xg + +volint.ss.c: $(VOLSER)\volint.xg volint.h + $(RXGEN) -x -S -o $@ $(VOLSER)\volint.xg + +volint.xdr.c: $(VOLSER)\volint.xg volint.h + $(RXGEN) -x -c -o $@ $(VOLSER)\volint.xg + +volint.h: $(VOLSER)\volint.xg + $(RXGEN) -x -h -o $@ $(VOLSER)\volint.xg + +############################################################################ +# Definitions for generating files via COMPILE_ET + +volser.h volerr.c: $(VOLSER)\volerr.et $(VOLSER)\volser.p.h + $(DEL) volerr.c volser.h + $(COPY) $(VOLSER)\volerr.et . + $(COPY) $(VOLSER)\volser.p.h . + $(COMPILE_ET) volerr -h volser + +############################################################################ # Install target; primary makefile target -install: $(LOCAL_INCFILES) $(LIBFILE) $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \ +install_lib: $(LIBFILE) + +install: install_lib $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \ $(INCFILES) @@ -121,7 +150,7 @@ install: $(LOCAL_INCFILES) $(LIBFILE) $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \ # Local clean target; augments predefined clean target clean:: - $(DEL) volerr.c volser.h $(INCFILES) - $(DEL) volint.cs.c volint.h volint.ss.c volint.xdr.c volser.h + $(DEL) volerr.c volser.h volerr.et volser.p.h $(INCFILES) + $(DEL) volint.cs.c volint.h volint.ss.c volint.xdr.c mkdir: diff --git a/src/ubik/NTMakefile b/src/ubik/NTMakefile index ac1a40c..17118b3 100644 --- a/src/ubik/NTMakefile +++ b/src/ubik/NTMakefile @@ -48,6 +48,44 @@ $(LIBFILE): $(LIBOBJS) $(LIBARCH) ############################################################################ +# build mtafsubik.lib + +MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsubik.lib + +MT_LIBOBJS =\ + $(OUT)\disk.obj \ + $(OUT)\remote.obj \ + $(OUT)\beacon.obj \ + $(OUT)\recovery.obj \ + $(OUT)\ubik.obj \ + $(OUT)\uinit.obj \ + $(OUT)\vote.obj \ + $(OUT)\lock.obj \ + $(OUT)\phys.obj \ + $(OUT)\ubik_int_mt.cs.obj \ + $(OUT)\ubik_int_mt.ss.obj \ + $(OUT)\ubik_int_mt.xdr.obj \ + $(OUT)\ubikcmd.obj \ + $(OUT)\ubikclient.obj \ + $(OUT)\uerrors_mt.obj \ + $(OUT)\AFS_component_version_number.obj + +$(OUT)\uerrors_mt.obj:uerrors.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\ubik_int_mt.cs.obj:ubik_int.cs.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\ubik_int_mt.ss.obj:ubik_int.ss.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\ubik_int_mt.xdr.obj:ubik_int.xdr.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(MT_LIBFILE): $(MT_LIBOBJS) + $(LIBARCH) + +############################################################################ # Definitions for building a EXE. RS_UDBG_EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\udebug.exe @@ -112,7 +150,7 @@ uerrors.c ubik.h: uerrors.et ubik.p.h install9X: $(INCFILES) $(LIBFILE) -install: $(INCFILES) $(LIBFILE) $(CL_UDBG_EXEFILE) +install: $(INCFILES) $(LIBFILE) $(MT_LIBFILE) $(CL_UDBG_EXEFILE) clean:: diff --git a/src/util/NTMakefile b/src/util/NTMakefile index cdcbf79..6cd9063 100644 --- a/src/util/NTMakefile +++ b/src/util/NTMakefile @@ -27,7 +27,8 @@ INCFILES =\ $(INCFILEDIR)\ktime.h \ $(INCFILEDIR)\fileutil.h \ $(INCFILEDIR)\afsutil_prototypes.h \ - $(INCFILEDIR)\secutil_nt.h + $(INCFILEDIR)\secutil_nt.h \ + $(INCFILEDIR)\softsig.h $(DESTDIR)\include\afs\dirent.h: dirent_nt.h $(COPY) $** $@ @@ -37,6 +38,8 @@ $(DESTDIR)\include\afs\dirpath.h: dirpath_nt.h LIBFILE = $(DESTDIR)\lib\afs\afsutil.lib +MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsutil.lib + LIBOBJS = \ $(OUT)\assert.obj \ $(OUT)\base32.obj \ @@ -62,13 +65,49 @@ LIBOBJS = \ $(OUT)\fileutil.obj \ $(OUT)\secutil_nt.obj +MT_LIBOBJS = \ + $(OUT)\assert.obj \ + $(OUT)\base32.obj \ + $(OUT)\casestrcpy.obj \ + $(OUT)\get_krbrlm.obj \ + $(OUT)\hostparse.obj \ + $(OUT)\isathing.obj \ + $(OUT)\kreltime.obj \ + $(OUT)\ktime.obj \ + $(OUT)\netutils.obj \ + $(OUT)\regex.obj \ + $(OUT)\readdir_nt.obj \ + $(OUT)\serverLog_mt.obj \ + $(OUT)\snprintf.obj \ + $(OUT)\strlcat.obj \ + $(OUT)\uuid.obj \ + $(OUT)\volparse.obj \ + $(OUT)\winsock_nt.obj \ + $(OUT)\errmap_nt.obj \ + $(OUT)\dirpath_mt.obj \ + $(OUT)\strnlen.obj \ + $(OUT)\strlcpy.obj \ + $(OUT)\fileutil.obj \ + $(OUT)\secutil_nt.obj + $(LIBOBJS): $$(@B).c $(C2OBJ) $** +$(OUT)\dirpath_mt.obj:dirpath.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\serverLog_mt.obj:serverLog.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + $(LIBFILE): $(LIBOBJS) $(LIBARCH) -install: $(INCFILES) $(LIBOBJS) $(LIBFILE) +$(MT_LIBFILE): $(MT_LIBOBJS) + $(LIBARCH) + +install_headers: $(INCFILES) + +install: install_headers $(LIBOBJS) $(LIBFILE) $(MT_LIBFILE) install9x: install diff --git a/src/vol/NTMakefile b/src/vol/NTMakefile index 4141402..c48d7fd 100644 --- a/src/vol/NTMakefile +++ b/src/vol/NTMakefile @@ -36,6 +36,8 @@ INCFILES =\ LIBFILE = $(DESTDIR)\lib\afs\afsvol.lib +MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsvol.lib + LIBOBJS =\ $(OUT)\common.obj \ $(OUT)\clone.obj \ @@ -52,10 +54,57 @@ LIBOBJS =\ $(OUT)\ihandle.obj \ $(OUT)\AFS_component_version_number.obj +MT_LIBOBJS =\ + $(OUT)\common.obj \ + $(OUT)\clone_mt.obj \ + $(OUT)\fssync-client_mt.obj \ + $(OUT)\fssync-server_mt.obj \ + $(OUT)\daemon_com_mt.obj \ + $(OUT)\ntops.obj \ + $(OUT)\nuke_mt.obj \ + $(OUT)\partition_mt.obj \ + $(OUT)\purge.obj \ + $(OUT)\vnode_mt.obj \ + $(OUT)\volume_mt.obj \ + $(OUT)\vutil_mt.obj \ + $(OUT)\ihandle_mt.obj \ + $(OUT)\AFS_component_version_number.obj + +$(OUT)\clone_mt.obj:clone.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\daemon_com_mt.obj:daemon_com.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\fssync-client_mt.obj:fssync-client.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\fssync-server_mt.obj:fssync-server.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\ihandle_mt.obj:ihandle.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\nuke_mt.obj:nuke.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\partition_mt.obj:partition.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\vnode_mt.obj:vnode.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\volume_mt.obj:volume.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + +$(OUT)\vutil_mt.obj:vutil.c + $(C2OBJ) $** -DAFS_PTHREAD_ENV + $(LIBFILE): $(LIBOBJS) $(LIBARCH) - +$(MT_LIBFILE): $(MT_LIBOBJS) + $(LIBARCH) ############################################################################ # External libraries @@ -133,7 +182,7 @@ $(OUT)\volinfo.res: AFS_component_version_number.h ############################################################################ # Install targets -install: $(INCFILES) $(LIBFILE) $(SALVAGER) $(VOLINFO) +install: $(INCFILES) $(LIBFILE) $(MT_LIBFILE) $(SALVAGER) $(VOLINFO) mkdir: -- 1.9.4