Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Jul 1998 18:40:32 -0400
From:      Adam McDougall <mcdougall@ameritech.net>
To:        current@FreeBSD.ORG
Subject:   strange src tree corruption
Message-ID:  <35B90D60.3FE563F0@ameritech.net>

next in thread | raw e-mail | index | archive | help
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. <scratch head here>
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?35B90D60.3FE563F0>