Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2010 10:20:46 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-current@freebsd.org
Cc:        Marcel Moolenaar <xcllnt@mac.com>
Subject:   Re: [PATCH] rename COMPAT_FREEBSD32
Message-ID:  <201003231020.46887.jhb@freebsd.org>
In-Reply-To: <18331E07-2DEA-43C7-A0BF-5B3A2E827FDB@mac.com>
References:  <E1Nr9jL-0000fx-Nj@clue.co.za> <20100322175213.GA87475@dragon.NUXI.org> <18331E07-2DEA-43C7-A0BF-5B3A2E827FDB@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 22 March 2010 4:48:19 pm Marcel Moolenaar wrote:
> 
> On Mar 22, 2010, at 10:52 AM, David O'Brien wrote:
> 
> > On Mon, Mar 15, 2010 at 09:00:18AM -0700, Julian Elischer wrote:
> >> I certainly agree.. can it be changed please?
> > 
> > I've waited a while to see what other opinions would be expressed on this
> > topic.  I believe there is sufficient support to rename COMPAT_FREEBSD32
> > to something else based on responses in the mailing lists.
> > 
> > I am sorry if some may wish to label this a "bikeshead".  But we seem to
> > have many folks disliking "COMPAT_FREEBSD32".
> > 
> > 
> > Based on responses to the topic of COMPAT_FREEBSD32, the following
> > were the suggestions offered:
> >    COMPAT_ARCH32, COMPAT_ARCH_32BIT, COMPAT_32BIT_ARCH, COMPAT_32BIT,
> >    COMPAT_FREEBSD32BIT
> 
> There's probably a bigger problem than just how we name it. The option
> really encodes 2 independent aspects:
> 1.  Support for a 32-bit ABI (i.e. ILP32)
> 2.  Support for a particular OS in ILP32.
> 
> Of course 2 implies 1.
> 
> For example:
> COMPAT_IA32 in sys/ia64/ia64/machdep.c enabled code to save and restore
> IA32 registers as part of cpu_switch(). In this context COMPAT_IA32 was
> perfectly named. It's now called COMPAT_FREEBSD32, which doesn't make a
> lot of sense because what if I only want to support Linux/ia32 and not
> FreeBSD/ia32 (or vice-versa if you club them under a single COMPAT_*32)?

For amd64 I think COMPAT_LINUX32 requires COMPAT_FREEBSD32 in practice for 
this reason.  If you did make them independent, I would prefer that the code 
use things like '#if defined(COMPAT_FREEBSD32) || defined(COMPAT_LINUX32)' 
instead of requiring the user to specify both COMPAT_IA32 and 
COMPAT_(FREEBSD32|LINUX32).

BTW, in that context COMPAT_FREEBSD32 looks far more consistent than other 
alternatives suggested.  I think all of the names have various pros and cons 
and that changing it is more hassle than its worth.  My one suggestion to 
Nathan was to move COMPAT_FREEBSD32 in GENERIC on amd64 so it is not 
immediately next to COMPAT_FREEBSD<n> to reduce confusion.

-- 
John Baldwin



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