Update the note about the need for COMPAT_FREEBSD<n> kernel options.

Rather than mentioning the requirement for 4.x binaries but not
explaining why (it was assuming an upgrade from 4.x to 5.0-current),
explain when compat options are needed (for running existing host
binaries) in a more general way while using a more modern example
(COMPAT_FREEBSD11 for 11.x binaries).  While here, explicitly mention
that a GENERIC kernel should always work.

Reported by:	Robert Huff <roberthuff@rcn.com>
Reviewed by:	imp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D18740
This commit is contained in:
John Baldwin 2019-01-15 18:20:20 +00:00
parent 500759395a
commit 7f124c950a

View File

@ -1901,12 +1901,13 @@ COMMON ITEMS:
can be deleted by "make delete-old-libs", but you have to make
sure that no program is using those libraries anymore.
[8] In order to have a kernel that can run the 4.x binaries needed to
do an installworld, you must include the COMPAT_FREEBSD4 option in
your kernel. Failure to do so may leave you with a system that is
hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
required to run the 5.x binaries on more recent kernels. And so on
for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
[8] The new kernel must be able to run existing binaries used by
an installworld. When upgrading across major versions, the new
kernel's configuration must include the correct COMPAT_FREEBSD<n>
option for existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x
binaries). Failure to do so may leave you with a system that is
hard to boot to recover. A GENERIC kernel will include suitable
compatibility options to run binaries from older branches.
Make sure that you merge any new devices from GENERIC since the
last time you updated your kernel config file.