From owner-freebsd-current Fri Jul 24 15:41:39 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA14207 for freebsd-current-outgoing; Fri, 24 Jul 1998 15:41:39 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from thing.dyn.ml.org (dyn-max10-191.chicago.il.ameritech.net [206.141.212.191] (may be forged)) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA14139 for ; Fri, 24 Jul 1998 15:41:13 -0700 (PDT) (envelope-from mcdougall@ameritech.net) Received: from ameritech.net (bsdx [192.168.1.2]) by thing.dyn.ml.org (8.8.8/8.8.7) with ESMTP id SAA12976 for ; Fri, 24 Jul 1998 18:40:34 -0400 (EDT) (envelope-from mcdougall@ameritech.net) Message-ID: <35B90D60.3FE563F0@ameritech.net> Date: Fri, 24 Jul 1998 18:40:32 -0400 From: Adam McDougall Reply-To: mcdougall@ameritech.net X-Mailer: Mozilla 4.05 [en] (X11; I; FreeBSD 3.0-CURRENT i386) MIME-Version: 1.0 To: current@FreeBSD.ORG Subject: strange src tree corruption Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG This seems to happen now a few times each time I attempt a buildworld, the compile bombs out with something like this: /asynch/src/gnu/usr.bin/perl/perl/perl.c:1478: unterminated string or character constant/asynch/src/gnu/usr.bin/perl/perl/perl.c:1239: possible real start of unterminated constant /asynch/src/gnu/usr.bin/perl/perl/perl.c:1236: unterminated `#if' conditional /asynch/src/gnu/usr.bin/perl/perl/perl.c: In function `do_eval': /asynch/src/gnu/usr.bin/perl/perl/perl.c:1236: parse error at end of input/asynch/src/gnu/usr.bin/perl/perl/perl.c:118: warning: `moreswitches' declared `static' but never defined *** Error code 1 this is right after a cvsup. if I rm the file, and cvsup, its magically fixed. The filesystem this partition is on has softupdates, but thats the only thing special I can think about it. I recently copied my src tree off it and newfs'ed but the problem remains. Is there something that may be stopping cvsup from properly checking or updating corrupted files? Maybe I should just nuke the src tree and cvsup the whole tree again (not on the top of my list of things I'd like to do) Any input on this mystery would be appreciated :) Thanks in advance. The diff from the file before rm, and the resulting file after cvsup is this: --- perl.c Fri Jul 24 17:10:31 1998 +++ goodperl.c Fri Jul 24 17:14:01 1998 @@ -1236,7 +1236,50 @@ #ifdef DEBUGGING if (debug & 4) { char *tmps = loop_stack[loop_ptr].loop_label; - deb("(Popping label SPAT * VOLATILE oldlspat = lastspat; + deb("(Popping label #%d %s)\n",loop_ptr, + tmps ? tmps : "" ); + } +#endif + loop_ptr--; + tmps_base = oldtmps_base; + curspat = oldspat; + lastspat = oldlspat; + if (savestack->ary_fill > oldsave) /* let them use local() */ + restorelist(oldsave); + + if (optype != O_EVAL) { + if (retval) { + if (optype == O_REQUIRE) + fatal("%s", str_get(stab_val(stabent("@",TRUE)))); + } + else { + curcmd = oldcurcmd; + if (gimme == G_SCALAR ? str_true(st[sp]) : sp > arglast[0]) { + (void)hstore(stab_hash(incstab), specfilename, + strlen(specfilename), str_smake(stab_val(curcmd->c_filestab)), + 0 ); + } + else if (optype == O_REQUIRE) + fatal("%s did not return a true value", specfilename); + } + } + curcmd = oldcurcmd; + return sp; +} + +int +do_try(cmd,gimme,arglast) +CMD *cmd; +int gimme; +int *arglast; +{ + STR **st = stack->ary_array; + + CMD * VOLATILE oldcurcmd = curcmd; + VOLATILE int oldtmps_base = tmps_base; + VOLATILE int oldsave = savestack->ary_fill; + SPAT * VOLATILE oldspat = curspat; + SPAT * VOLATILE oldlspat = lastspat; VOLATILE int sp = arglast[0]; tmps_base = tmps_max; @@ -1456,25 +1499,3 @@ #endif } -^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ -static const char *filesave[] = { -" 14 14 3 1", -". c #040404", -"# c #808304", -"a c #bfc2bf", -"..............", -".#.aaaaaaaa.a.", -".#.aaaaaaaa...", -".#.aaaaaaaa.#.", -".#.aaaaaaaa.#.", -".#.aaaaaaaa.#.", -".#.aaaaaaaa.#.", -".##........##.", -".############.", -".##.........#.", -".##......aa.#.", -".##......aa.#.", -".##......aa.#.", -"a............." -}; -^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ \ No newline at end of file To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message