DragonFly kernel List (threaded) for 2007-01
Re: machine/platform separation
:so, what is
:and how do they relate?
I'm still trying to figure that out after a decade. There is an
explanation in /usr/src/Makefile.inc1, around line 158. Suffice it
to say that the names chosen a very long time ago created mass
confusion which persists today.
We should probably rename them to BUILD_CPU, BUILD_MACHINE, and add
BUILD_PLATFORM, then have TARGET_CPU, TARGET_MACHINE, and TARGET_PLATFORM
for cross building.
The problem is compounded by the fact that the make program (all make
programs) are supposed to pre-define MACHINE and MACHINE_ARCH, so
the make program also has to define MACHINE (== BUILD_MACHINE) and
MACHINE_ARCH (== BUILD_CPU).
Fun isn't it?
MACHINE_ARCH BUILD_CPU i386 cpu architecture
MACHINE BUILD_MACHINE i386 machine ABI
BUILD_PLATFORM pc32 platform build
MACHINE_ARCH (== BUILD_CPU) (third party compat)
MACHINE (== BUILD_MACHINE) (third party compat)
For our own purposes, our build system would be based on BUILD_CPU and
BUILD_PLATFORM and ignore BUILD_MACHINE for this release. Our kernel
config files would have 'platform', 'machine', and 'cpu_arch'
specifications (instead of the 'machine' and 'machine_arch' it uses now).
I would use 'cpu' but it is already used to specify particular cpu
So, e.g. the VKERNEL config file would have:
And all of our standard config files would have: