configvers.h revision 215034
1204076Spjd/*- 2204076Spjd * This file is in the public domain 3204076Spjd * 4204076Spjd * $FreeBSD: head/usr.sbin/config/configvers.h 215034 2010-11-09 10:59:09Z brucec $ 5204076Spjd */ 6204076Spjd 7204076Spjd/* 8204076Spjd * 6 digits of version. The most significant are branch indicators at the 9204076Spjd * time when the last incompatible change was made (which is why it is 10204076Spjd * presently 6 on 7-current). The least significant digits are incremented 11204076Spjd * as described below. The format is similar to the __FreeBSD_version, but 12204076Spjd * not tied to it. 13204076Spjd * 14204076Spjd * DO NOT CASUALLY BUMP THIS NUMBER! The rules are not the same as shared 15204076Spjd * libs or param.h/osreldate. 16204076Spjd * 17204076Spjd * It is the version number of the protocol between config(8) and the 18204076Spjd * sys/conf/ Makefiles (the kernel build system). 19204076Spjd * 20204076Spjd * It is now also used to trap certain problems that the syntax parser cannot 21204076Spjd * detect. 22204076Spjd * 23204076Spjd * Unfortunately, there is no version number for user supplied config files. 24204076Spjd * 25204076Spjd * Once, config(8) used to silently report errors and continue anyway. This 26204076Spjd * was a huge problem for 'make buildkernel' which was run with the installed 27204076Spjd * /usr/sbin/config, not a cross built one. We started bumping the version 28204076Spjd * number as a way to trap cases where the previous installworld was not 29204076Spjd * compatible with the new buildkernel. The buildtools phase and much more 30204076Spjd * comprehensive error code returns solved this original problem. 31204076Spjd * 32204076Spjd * Most end-users will use buildkernel and the build tools from buildworld. 33204076Spjd * The people that are inconvenienced by gratuitous bumps are developers 34204076Spjd * who run config by hand. However, developers shouldn't gratuitously be 35204076Spjd * inconvenienced. 36204076Spjd * 37204076Spjd * One should bump the CONFIGVERS in the following ways: 38204076Spjd * 39204076Spjd * (1) If you change config such that it won't read old config files, 40204076Spjd * then bump the major number. You shouldn't be doing this unless 41204076Spjd * you are overhauling config. Do not casually bump this number 42204076Spjd * and by implication do not make changes that would force a bump 43204076Spjd * of this number casually. You should limit major bumps to once 44204076Spjd * per branch. 45204076Spjd * (2) For each new feature added, bump the minor version of this file. 46204076Spjd * When a new feature is actually used by the build system, update the 47204076Spjd * %VERSREQ field in the Makefile.$ARCH of all the affected makefiles 48204076Spjd * (typically all of them). 49204076Spjd * 50204076Spjd * $FreeBSD: head/usr.sbin/config/configvers.h 215034 2010-11-09 10:59:09Z brucec $ 51204076Spjd */ 52204076Spjd#define CONFIGVERS 600011 53204076Spjd#define MAJOR_VERS(x) ((x) / 100000) 54204076Spjd