Jonas Walld?n @ Pike developers forum wrote:
http://pike.ida.liu.se/generated/pikefarm/7.8/31_2/configlogs.txt
Search for first occurence of "smartlink.c":
configure:6854: checking whether smartlink compiles Compiling smartlink: ccache gcc -o smartlink -g -O2 -falign-jumps=2 -ftracer -mpreferred-stack-boundary=2 -pipe -I. /var/src/xenofarm/pike-devel/aristoteles.cuci.nl/buildtmp/Pike-v7.8-snapshot/src/smartlink.c 2>&5 /var/src/xenofarm/pike-devel/aristoteles.cuci.nl/buildtmp/Pike-v7.8-snapshot/src/smartlink.c: In function 'isexecutable': /var/src/xenofarm/pike-devel/aristoteles.cuci.nl/buildtmp/Pike-v7.8-snapshot/src/smartlink.c:77: error: invalid operands to binary & (have 'struct stat' and 'int') configure:6862: result: no - use the sh script
Sorry, found it, I think. Rusty syscall-memory I guess, this is what the code should have looked like in the first place:
diff --git a/src/smartlink.c b/src/smartlink.c index d7387c0..0435511 100644 --- a/src/smartlink.c +++ b/src/smartlink.c @@ -74,7 +74,8 @@ static int isexecutable(char *file) { struct stat stbuf;
- return !stat(file, &stbuf) && !S_ISDIR(stbuf) + return !stat(file, &stbuf) + && !S_ISDIR(stbuf.st_mode) && stbuf.st_mode&(S_IXUSR|S_IXGRP|S_IXOTH); }
Does that solve the problem?