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