1 /* 2 * 6 digits of version. The most significant are branch indicators 3 * (eg: RELENG_2_2 = 22, -current presently = 70 etc). The least 4 * significant digits are incremented as needed. 5 * 6 * DO NOT CASUALLY BUMP THIS NUMBER! The rules are not the same as shared 7 * libs or param.h/osreldate. 8 * 9 * It is the version number of the protocol between config(8) and the 10 * sys/conf/ Makefiles (the kernel build system). 11 * 12 * It is now also used to trap certain problems that the syntax parser cannot 13 * detect. 14 * 15 * Unfortunately, there is no version number for user supplied config files. 16 * 17 * Once, config(8) used to silently report errors and continue anyway. This 18 * was a huge problem for 'make buildkernel' which was run with the installed 19 * /usr/sbin/config, not a cross built one. We started bumping the version 20 * number as a way to trap cases where the previous installworld was not 21 * compatable with the new buildkernel. The buildtools phase and much more 22 * comprehensive error code returns solved this original problem. 23 * 24 * Most end-users will use buildkenel and the build tools from buildworld. 25 * The people that are inconvenienced by gratuitous bumps are developers 26 * who run config by hand. 27 * 28 * $FreeBSD$ 29 */ 30 #define CONFIGVERS 600004 31 32 /* 33 * Examples of when there should NOT be a bump: 34 * - Adding a new keyword 35 * - Changing the syntax of a keyword such that old syntax will break config. 36 * - Changing the syntax of a keyword such that new syntax will break old 37 * config binaries. 38 * 39 * Examples of when there should be a bump: 40 * - When files generated in sys/$mach/compile/NAME are changed and the 41 * Makefile.$mach rules might not handle it correctly. 42 * - When there are incompatable changes to the way sys/conf/files.* or the 43 * other associated files are parsed such that they will be interpreted 44 * incorrectly rather than fail outright. 45 */ 46