HEADS UP - More major build infrastructure changes
Matthew Dillon
dillon at apollo.backplane.com
Mon Nov 6 12:00:21 PST 2006
I will be comitting more major build infrastructure changes today.
These changes normalize the keywords and directories used to
specify machines and cpu's, demangling FreeBSD's mangling. These
changes are required to support virtual kernels and future porting
efforts.
Standards defined keywords will remain as they are, but proper use will
now be enforced.
MACHINE - This is the PLATFORM, e.g. "amiga", "sun", "pc", etc.
This used to be "i386" for PC builds and will be
changed to "pc".
MACHINE_ARCH - This is the CPU ARCHITECTURE, e.g. "i386", "amd64", etc
MACHINE_CPU - This is already the minimum support cpu revision, but
there were mixups between MACHINE and MACHINE_ARCH
defaults. It defaults to MACHINE_ARCH.
cpu-specific header and source files will be moved to
/usr/src/sys/cpu/<MACHINE_ARCH>.
platform-specific header and source files will be moved to
/usr/src/sys/machine/<MACHINE>.
Header file access to platform-specific header files will use the
<machine/*.h> specification, just as before.
Header file access to cpu-specific header files will use the
<cpu/*.h> specification, but can also use <machine/*.h> (to maintain
compatibility with third party software). A machine header file
can simply #include the cpu header file.
This functional separation will allow me to construct a virtual
kernel architecture without having to duplicate dozens of header
files.
/usr/src/sys/arch will be deleted, its infrastructure will be
moved to /usr/src/sys/machine/<MACHINE> and /usr/src/sys/cpu/<MACHINE_ARCH.
Kernel configuration files will be required to specify both the
platform via the 'machine' keyword, and the cpu architecture via
the 'machine_arch' keyword. These keywords match the preexisting
definitions for MACHINE and MACHINE_ARCH.
The "i386" platform architecture will be renamed to "pc" to remove the
confusion that is caused by having both the platform and the cpu
architecture named the same thing.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Kernel
mailing list