I found that perhaps it is a MacOS-specific problem (I am not sure). In Leopard:
#if __DARWIN_UNIX03 #define WEXITSTATUS(x) ((_W_INT(x) >> 8) & 0x000000ff) #else /* !__DARWIN_UNIX03 */ #define WEXITSTATUS(x) (_W_INT(x) >> 8) #endif /* !__DARWIN_UNIX03 */ and _W_INT is defined as: #if defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE) #define _W_INT(i) (i) #else #define _W_INT(w) (*(int *)&(w)) /* convert union wait to int */ ... #endif (In Linux: #define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) where __WAIT_INT is defined as: # if defined __GNUC__ && !defined __cplusplus # define __WAIT_INT(status) \ (__extension__ ({ union { __typeof(status) __in; int __i; } __u; \ __u.__in = (status); __u.__i; })) # else # define __WAIT_INT(status) (*(int *) &(status)) # endif ) So the 250th line of vtc.c assert(WEXITSTATUS(system(av[1])) == 0); will be expanded as assert((*(int *)&(system(av[1]))) == 0); and gcc reported that error. Rewriting cmd_shell as follows solved the problem. 238 static void 239 cmd_shell(CMD_ARGS) 240 { 241 int sr; 242 (void)priv; 243 (void)cmd; 244 245 if (av == NULL) 246 return; 247 AN(av[1]); 248 AZ(av[2]); 249 vtc_dump(vl, 4, "shell", av[1]); 250 251 sr = system(av[1]); 252 assert(WEXITSTATUS(sr) == 0); 253 } 2009/3/6 Poul-Henning Kamp <p...@phk.freebsd.dk> > In message <de894c690903052342l170472cclf94ad23d13fc6...@mail.gmail.com>, > 19191 > 9 writes: > > >Making all in varnishtest > >gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../include -g -O2 -MT > >vtc.o -MD -MP -MF .deps/vtc.Tpo -c -o vtc.o vtc.c > >vtc.c: In function 'cmd_shell': > >vtc.c:250: error: invalid lvalue in unary '&' > > critter phk> sed -n 250p vtc.c > assert(WEXITSTATUS(system(av[1])) == 0); > > I have no idea what the trouble is. > > As a first sanity-check, remove the vtc.c file and run "svn update" > to make sure your local copy is not corrupt. > > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > p...@freebsd.org | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence. >
_______________________________________________ varnish-dev mailing list varnish-dev@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-dev