Annotation of src/sys/README.SMP, Revision 1.1.2.13
1.1.2.11 niklas 1: $OpenBSD$
1.1.2.8 ho 2:
1.1.2.5 niklas 3: The SMP branch is irregularly updated from the trunk. To do this
1.1.2.13! niklas 4: you mainly need to carry out the following procedure:
1.1.2.1 niklas 5:
6: * Determine the new synchronization tag to use. There are two used
1.1.2.4 niklas 7: alternately; SMP_SYNC_A and SMP_SYNC_B. You can use several heuristics
1.1.2.1 niklas 8: to find out which one was used last, and then use the other one.
9: For example, CVSROOT/history* files gives you information about tag
10: operations in lines matching '^T'. Call the tag you will be using
11: for $NEW_TAG and the other one $OLD_TAG.
12:
1.1.2.7 ho 13: * Remove every trace of the "old" new synchronization tag, note that cvs
14: rtag -F won't cut it, as it does not remove files that have been removed
15: since last time.
1.1.2.3 niklas 16:
1.1.2.7 ho 17: $ cvs -d cvs.openbsd.org:/cvs rtag -d $NEW_TAG src/sys
1.1.2.3 niklas 18:
1.1.2.1 niklas 19: * Tag the trunk with the new synchronization tag.
20:
1.1.2.3 niklas 21: $ cvs -d cvs.openbsd.org:/cvs rtag -rHEAD $NEW_TAG src/sys
1.1.2.1 niklas 22:
23: * Have an SMP branch checkout available with -kk substitution done.
24: For example check out a fresh one:
25:
26: $ cvs get -rSMP -kk src/sys
27:
1.1.2.3 niklas 28: * Create and add directories that have been added to the trunk since
29: last synchronization. Say you have a clean standard trunk checkout in $STD
30: and your clean SMP checkout is in $SMP:
31:
32: $ cd $STD/src/sys
33: $ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/stddirs
34: $ cd $SMP/src/sys
35: $ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/smpdirs
36: $ comm -23 /tmp/{std,smp}dirs |while read d; do
37: > mkdir $d
38: > cvs add $d
39: > done
40:
1.1.2.1 niklas 41: * Go into src/sys and merge from the trunk (make sure that the repository
42: you use have the new tags from the tagging above, i.e. don't use a mirror
43: that has not been updated since that step):
44:
45: $ cvs up -j$OLD_TAG -j$NEW_TAG -kk
46:
47: * Find any conflicts, and resolve them, this command might help:
48:
49: $ cvs -q up -dP -rSMP -kk 2>&1 | grep '^C '
50:
1.1.2.3 niklas 51: * Build and test an i386 GENERIC.MP kernel as well as an alpha GENERIC,
52: fix every regression you can find.
1.1.2.1 niklas 53:
1.1.2.13! niklas 54: * Cvs contains nasty bugs in its client/server invocation. Earlier this
! 55: documentation has contained bug fixup instructions for the remote cvs
! 56: use. However this is error-prone and slow. It's much better to do the
! 57: last step locally *on* cvs.openbsd.org. I.e. transfer your tree to commit
! 58: to cvs.openbsd.org and commit from there!
1.1.2.2 niklas 59:
1.1.2.3 niklas 60: * Commit to the SMP branch in pieces to not lock too much of the sys tree
61: in the repository, Nice chunks are perhaps 100-300 files.
1.1.2.2 niklas 62:
63: * A nice check is to browse the output of:
64:
1.1.2.6 niklas 65: $ cvs -qd cvs.openbsd.org:/cvs rdiff -kk -u -r$NEW_TAG -rSMP src/sys
1.1.2.3 niklas 66:
1.1.2.4 niklas 67: It should just be differences related to multiprocessor support.