How to install SCCS under 4.2

Tim Bray tbray at mprvaxa.UUCP
Fri Mar 23 04:04:18 AEST 1984


x <-- USENET insecticide

Have seen a couple of requests re Sccs on 4.2, and I'm not certainly not
about to distribute the working source because the required changes
are so trivial.  I put up the mouldy old PWB version (is there any other 
version?) under 4.2 in a few hours.

1. Either install libPW under 4.2, or hack the sccs makefiles to use a
   local copy of libPW (preferable), or hack sccs itself to call a more
   contemporary set of routines (best of all) - I took the second 
   alternative.

2. Look through the sccs source for cases where they do directory
   reads to handle specification of a whole directory.  You can
   just grep for "struct dir" or "<dir.h>".  Don't worry, if you
   miss any sccs will blow up indicatively the first few times
   you use it.

3. Replace these instances of directory reading with calls to the
   4.2 directory reading routines, opendir(), readdir(), etc.

4. NOW, go look for all occurences of the routine xfreeall(),
   mostly in the various cleanup() routines.  Turns out Sccs, true
   to its PDP-11 heritage, uses the stingy PW alloc/malloc 
   routines, and whenever it's finished processing one of a group
   of files, turns around and frees all memory via xfreeall(), which
   does an sbrk().  Unfortunately, the 4.2 dir(3) routines 
   whimsically malloc() all over the place, and the sbrk() hits
   them where they live.  Took me hours to nail that one down...
   it was trashing readdir()'s fd to 0, and the program would hang
   trying to read stdin.  So fix the xfreell() calls one way or
   another.  I just commented them out... this is a VM machine.

5. Now act like a responsible person and record these changes using RCS.

Have fun.



More information about the Comp.unix.wizards mailing list