AMD64 port

Noah yan noah.yan at
Sun Jul 15 19:18:11 PDT 2007

On 7/15/07, Matthew Dillon <dillon at> wrote:
:Matt and Simon,
:i am still hanging in the cross compiling part (simon helps me a lot
:in irc) and it is a learning process for me. some questions about the
:building infra.
:we assume the amd64 as the TARGET_ARCH, but i found another one,
:TARGET_PLATFORM, also need to set as pc64 (a wired name, suggest a
:better name). that Makefile also need to set in the platform (pc64)
:folder. I thing that is what the building infra is. just double check.
    TARGET_ARCH is the one that controls cross compiling.

    TARGET_PLATFORM is DragonFly-specific and used to control which
    platform/<blah> source files are to be used.  It does NOT have any
    effect whatsoever on the cross compiling environment.
right, i do have to set the TARGET_PLATFORM so that those sources from
platform/pc64 can be picked up when building the libraries.
For the cross compiling, it makes sense that the target should include
both the target cpu (TARGET_ARCH) and the target machine
(TARGET_PLATFORM). but the TARGET_PLATFORM=pc64 (if we want this name)
may implicitly set the TARGET_ARCH=amd64.
Thanks matt for explaining the include/machine/*.h files Simon, some
of those files in cpu/*.h are also copied to include/machine, that why
they are not existing in the platform/pc64.
For the naming and folder structure, looks like FreeBSD or Linux has
only an amd64 (or x86-64) that includes all the sources for the cpu
and platform. they do not spearate cpu-specific and platform-specific.
the question is it there a lot of differences in sources of two
platforms of the same cpu architecture, e.g. what other platform,
other than pc32 for the i386 cpu; what other platform, other than pc64
for the amd64 cpu. what is the pc32 (pc64) platform of i386 (amd64)
cpu. look likes pc32 are for all machines (desktop, server, etc) built
using x86 32 bit cpu, or the differences are in the device driver and
motherboard part.
btw, what sources files or doc in gcc explaining the supported
architecture/platform names?

    For example, we have platform/pc32 and we have platform/vkernel.
    'vkernel' is clearly not a cross compiling target.  Both have an
    architecture of i386 (eventually we will also make vkernel's compile
    under amd64, but don't worry about that for now).

More information about the Kernel mailing list