OpenSolaris

You are not signed in. Sign in or register.

Flag day: sccscheck, take two

Date: Fri, 28 Apr 2006 18:51:36 -0400
From: Bill Sommerfeld <sommerfeld at sun.com>
To: on-all at sun dot com, onnv-gate at onnv dot eng dot sun dot com
Subject: Flag day: sccscheck, take two

The integration of 

6418599 absolute tools path for "sccscheck" breaks builds when you mix ws with nightly -t

constitutes a minor flag day for incremental builds of ON.

When crossing this flag day, incremental builds will see a one-time
flood of "sccscheck" invocations for read-only source files -- for instance:

	...	
	sccscheck arp.h
	sccscheck common.h
	sccscheck ipclassifier.h
	sccscheck ip.h
	...

However, if there are checked-out source files, builds will fail with
an error message resembling:

	dmake: Fatal error: ../../common/inet/ip/ip_rts.c is writable so it cannot be sccs gotten

As mentioned in a previous flag day notice, there are several ways
around this:

 - A full clobber build via nightly, which will delete .make.state
files.

 - Check the file in and run a full or selective incremental build.

 - Selective "make clobber" and deletion of ".make.state" files in any
build directories referencing the source file.

Once you are across this flag day you can resume incremental builds with
checked out source files.

In addition, the integration of 

6417313 *bringovercheck* needs better timestamp resolution

is able to detect additional cases where source files are out of date
with respect to their SCCS/s. files, so you may see some additional
post-bringover noise on the first bringovercheck with the new tool
version.

I apologize to the entire ON development community for wasting their
time by getting this wrong last time.

Background
==========

The "sccscheck" integration changed the make rule for sccs checkout
from "sccs get" to a command which includes a pathname dependant on
ONBLD_TOOLS.  Normally we prefer to use absolute pathnames for tools,
but because ONBLD_TOOLS will change between a build done with -t and a
shell started with "ws", and because make special-cases the SCCS
checkout rules to prevent them from accidentally clobbering a
checked-out file, use of the absolute pathname for sccscheck caused
substantially more disruption than anticipated.

This instability of ONBLD_TOOLS is not without other costs - see

6417873 ws should use locally-built ONBLD_TOOLS

The introduction of "sccscheck" converts unnecessary rebuilds into
build failures.