jpl@allegra.UUCP (John P. Linderman) (11/23/84)
SYNOPSIS: 4.2 /bin/make can drop cores for targets with embedded /'s REPEAT BY: Put the following two lines into a Makefile and do a make -nd: ./core.o: echo $* I get: doname(./core.o,0) sh: 3664 Memory fault - core dumped FIX BY: The problem is in doname.c, where someone evidently mistook the C rindex function (which returns a character pointer) for the fortran rindex function (which returns an integer). Both main.c and doname.c also can be made to dereference NULL depname pointers and thereby drop other cores. The diffs below correct several of these (some of which I had reported earlier) as well as the rindex botch. RCS file: main.c,v retrieving revision 1.1 diff -r1.1 main.c 249c249 < if(! unequal(p, dp->depname->namep)) --- > if((dp->depname != NULL) && ! unequal(p, dp->depname->namep)) RCS file: doname.c,v retrieving revision 1.1 diff -r1.1 doname.c 28a29 > char *pfxfile; 30c31 < char *mkqlist(); --- > char *mkqlist(), *rindex(); 77a79 > if (q->depname == NULL) continue; 121a124 > if (suffp->depname == NULL) continue; 128a132 > if (suffp1->depname == NULL) continue; 145c149,153 < setvar("*", &prefix[rindex(prefix, '/')]); --- > /* setvar("*", &prefix[rindex(prefix, '/')]); */ > if((pfxfile=rindex(prefix, '/')) == NULL) > pfxfile=prefix; > else pfxfile++; > setvar("*", pfxfile); 284a293 > if (q->depname == NULL) return; John P. Linderman Make-it-AND-Break-it Department allegra!jpl