Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jun 2010 12:01:41 -0500
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        mdf@FreeBSD.org
Cc:        freebsd-arch@freebsd.org
Subject:   Re: arch-specific directories
Message-ID:  <20100614120141.3876ec6d@anacreon.physics.wisc.edu>
In-Reply-To: <AANLkTilFBdzdlf2ZcnHN6_ygiw8qkEAJX-G-R6uSF55K@mail.gmail.com>
References:  <AANLkTilFBdzdlf2ZcnHN6_ygiw8qkEAJX-G-R6uSF55K@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 14 Jun 2010 08:26:45 -0700
mdf@FreeBSD.org wrote:

> This is as much as request for information as a suggestion.
> 
> I am wondering of the current layout of sys/<arch> make sense given
> that in several cases the only difference between two "arch" is the
> bitness, e.g. powerpc and powerpc64.  The 64-bit version supports a
> few new instructions, but in many cases is the same.  The same issue
> exists with i386/amd64 but because both have been supported for a long
> time the have full arch separation.  However, there has been some
> movement of files that are common between i386 and amd64 into a common
> x86 directory.
> 
> So what I'm wondering is it it makes more sense to have files broken
> up more like:
> 
> sys/<arch>      for common file between bitness
> sys/<arch>/32
> sys/<arch>/64  for files that are specific to the bitness
> 
> This would presumably serve at least powerpc and i386/amd64 well, and
> though I don't know for sure I assume at the moment that it works for
> sun/sparc as well.

PowerPC actually does something very similar to what you suggest -- the
sys/powerpc64 directory is a stub (containing only symlinks) that will
go away when the projects/ppc64 branch is merged. Almost everything to
do with the 32/64-bit difference is keyed off of #ifdef __powerpc64__,
which has several nice side effects, like allowing cc -m32 to work, as
well as simplifying maintenance by using a common code base.

Having written support for a "new" platform this way, I can attest that
shared code like you suggest is a very good idea.

> So... is this reasonable?  Or does the existence of ia64 throw a
> monkey wrench into this layout?  Is it not worth the shuffle (though
> I'd argue that, if we're moving some files to x86 and creating a new
> powerpc64 that it's better to consider now than later).
> 
> I realize there was a discussion earlier along similar lines (the
> bi-yearly architecture source tree layout discussion) but I don't
> think it was specifically considering the 32/64 bit differences, which
> seem to be more common now.

The larger scope of this is the work being done by M. Warner Losh (the
"TARGET_BIG_ENDIAN must die" branch), which he is currently merging.
This defines a new thing, MACHINE_CPUARCH, that would be 'powerpc',
with MACHINE_ARCH values of 'powerpc' and 'powerpc64', and is what will
allow sys/powerpc64 to disappear. I'm sure he can describe it in more
detail.
-Nathan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100614120141.3876ec6d>