cvs commit: src/sys/vm vm_map.c

David Schultz das at FreeBSD.ORG
Tue Jun 29 20:03:11 PDT 2004


On Wed, Jun 30, 2004, Bruce Evans wrote:
> On Tue, 29 Jun 2004, Andrew Gallatin wrote:
> 
> > Bruce Evans writes:
> >  > On Mon, 28 Jun 2004, Andrew Gallatin wrote:
> >  > >  > > >   Log:
> >  > >  > > >   Fix alpha - the use of min() on longs was loosing the high bits and
> >  > >  > > >   returning wrong answers, leading to strange values vm2->vm_{s,t,d}size.
> >  >
> >  > MIN() and MAX() should not be used in the kernel.  4.4BSD removed them in
> >  > the kernel, but FreeBSD broke this in rev.1.141 of sys/param.h.  They
> >  > remain removed in RELENG_4.
> >
> > OK.  Then what's the correct fix? ulmin()?
> 
> Fixing min() to handle all unsigned types is probably best.

Hmm...but this means either

a) slightly pessimizing 32-bit ports with a function on uintmax_t's,

b) using a macro and introducing double-expansion problems, or

c) using GCC extensions

Option (c) seems best from a technical standpoint, except that
we'd be making it harder than it already is to compile the kernel
with compilers other than gcc and icc.  (Do others have the
statement expr extension?)


More information about the cvs-src mailing list