Commit Diff


commit - 6b9887c7e5e26a4f7254104a9552e9a79c5489f7
commit + ef609927ddc476a061f137185794330b340b067a
blob - a8aaaa795524a553f0b8f183a1d2f20d57745e81
blob + 2b6d8f52756caef5c7f6ab1b6a5a20ed1738918d
--- src/cmd/venti/srv/arena.c
+++ src/cmd/venti/srv/arena.c
@@ -28,6 +28,8 @@ int	arenasumsleeptime;
 int
 initarenasum(void)
 {
+	needzeroscore();  /* OS X */
+
 	sumwait.l = &sumlock;
 
 	if(vtproc(sumproc, nil) < 0){
blob - 1c9dce3d1a7b6afe571df296ba8142a4710b0eec
blob + 07be62f4c0f5d2249fbd4f42c55b4ec5043f903c
--- src/cmd/venti/srv/dat.h
+++ src/cmd/venti/srv/dat.h
@@ -728,3 +728,4 @@ extern	ulong	stattime;
 #pragma varargck type "V" uchar*
 #define ODIRECT 0
 #endif
+
blob - 263ccd30e8cc7e2df2b9853a73fb4c1f43044e3b
blob + 032e4b3b1bd71b5d3dc7275563e9a45c0a9654ad
--- src/cmd/venti/srv/fns.h
+++ src/cmd/venti/srv/fns.h
@@ -105,6 +105,7 @@ uint		msec(void);
 int		namecmp(char *s, char *t);
 void		namecp(char *dst, char *src);
 int		nameok(char *name);
+void		needzeroscore(void);
 Arena		*newarena(Part *part, u32int, char *name, u64int base, u64int size, u32int blocksize);
 ArenaPart	*newarenapart(Part *part, u32int blocksize, u32int tabsize);
 ISect		*newisect(Part *part, u32int vers, char *name, u32int blocksize, u32int tabsize);
blob - 0809e84f6468380cf41efd74b55daab069c16ae6
blob + f150fd78e2d68df2b138182ad06477696818e49b
--- src/cmd/venti/srv/score.c
+++ src/cmd/venti/srv/score.c
@@ -4,6 +4,9 @@
 
 u8int zeroscore[VtScoreSize];
 
+/* Call this function to force linking of score.o for zeroscore on OS X */
+void needzeroscore(void) { }
+
 void
 scoremem(u8int *score, u8int *buf, int n)
 {
blob - eb63d15d731afd5ca4b938d60a2c807c7dd461c6
blob + fbaff9cab345e558da07ade1fab15b156e13b302
--- src/cmd/venti/srv/verifyarena.c
+++ src/cmd/venti/srv/verifyarena.c
@@ -176,6 +176,7 @@ threadmain(int argc, char *argv[])
 	vlong start, stop;
 	ArenaPart ap;
 	
+	needzeroscore();
 	ventifmtinstall();
 	blocksize = MaxIoSize;
 	ARGBEGIN{