Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Sep 2002 23:29:29 -0700
From:      Alfred Perlstein <bright@mu.org>
To:        Peter Wemm <peter@wemm.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/alpha/pci tsunamireg.h src/sys/boot/ia64/skiload main.c src/sys/i386/include npx.h src/sys/ia64/include reg.h signal.h src/sys/sys cdefs.h
Message-ID:  <20020923062929.GI6262@elvis.mu.org>
In-Reply-To: <20020923062512.606A32A7D6@canning.wemm.org>
References:  <20020923061917.GG6262@elvis.mu.org> <20020923062512.606A32A7D6@canning.wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Peter Wemm <peter@wemm.org> [020922 23:25] wrote:
> Alfred Perlstein wrote:
> > * Peter Wemm <peter@FreeBSD.org> [020922 22:55] wrote:
> > > peter       2002/09/22 22:55:11 PDT
> > > 
> > >   Modified files:
> > >     sys/alpha/pci        tsunamireg.h 
> > >     sys/boot/ia64/skiload main.c 
> > >     sys/i386/include     npx.h 
> > >     sys/ia64/include     reg.h signal.h 
> > >     sys/sys              cdefs.h 
> > >   Log:
> > >   At great personal risk, add a __packed and __aligned(x) define that
> > >   expand to __attribute__((packed)) and __attribute__((aligned(x)))
> > >   respectively.  Replace the handful of gcc-ism's that use
> > >   __attribute__((aligned(16))) etc around the kernel with __aligned(16).
> > >   
> > >   There are over 400 __attribute__((packed)) to deal with, that can come
> > >   later.  I just want to use __packed in new code rather than add more
> > >   gcc-ism's.
> > 
> > I really like what you've done, however don't you think that the
> > places that do not have __packed/__aligned shouldn't have it defined
> > to nothing...  therefore you can add:
> > 
> > #ifndef __packed
> > #error you must define __packed or bad things will happen
> > #endif
> > #ifndef __aligned
> > #error you must define __aligned or bad things will happen
> > #endif
> > 
> > Otherwise people may get compiled but very broken code
> > which most likely will be in critical things like device
> > drivers.
> 
> I agree, sort of.  But we need a lint case because the correct thing there
> is to define them to nothing.  However, I think we should restrict this to
> inside #ifdef _KERNEL where we do control things.
> 
> Otherwise things like bcc or tendra will blow up on a simple
> #include <sys/types.h> for a userland application that doesn't use any
> of these things.
> 
> Maybe the correct thing is to leave them undefined and let the compiler
> cause the compile to blow up if they're used when they shouldn't be?  That
> would solve the tendra and bcc etc cases.

Something like that. :)

Can't you just
#ifdef LINT
#define __packed
#define __aligned
#endif

?

-- 
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
 start asking why software is ignoring 30 years of accumulated wisdom.'

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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