Date: Mon, 27 May 2013 19:21:20 -0700 From: Garrett Cooper <yaneurabeya@gmail.com> To: freebsd-arch@FreeBSD.org Cc: Brooks Davis <brooks@freebsd.org> Subject: [RFC] add NetBSD compat macros to sys/cdefs.h Message-ID: <CAGHfRMCHbrBXPVfuH0bX0OZFn7KNuebswi_UrS1FoZv_zh4sgA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi,
One of the things that I've done in order to reduce unnecessary
divergence when porting NetBSD testcases to FreeBSD is I've pushed a
few macros into my sys/cdefs.h in order to facilitate compatibility
with NetBSD:
/* NetBSD compat */
/*
* The following macro is used to remove const cast-away warnings
* from gcc -Wcast-qual; it should be used with caution because it
* can hide valid errors; in particular most valid uses are in
* situations where the API requires it, not to cast away string
* constants. We don't use *intptr_t on purpose here and we are
* explicit about unsigned long so that we don't have additional
* dependencies.
*/
#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a))
#define ___STRING(x) __STRING(x)
#define __arraycount(__x) (sizeof(__x) / sizeof(__x[0]))
/* End NetBSD compat */
To clarify...
- I know __UNCONST is basically like __DECONST on steroids as
__UNCONST doesn't have the typecasting like __DECONST does.
- I'm working at removing the need for ___STRING with upstream.
- I know that __arraycount is equivalent to nitems.
The reason why I'm doing this is to reduce divergence and get
things going ASAP with the testing effort as I have a couple thousand
testcases ported from NetBSD which will be hooked into release images
(really soon) and will result in automated testing (not too far away,
potentially a couple months), versus the zero coverage we currently
have in FreeBSD. If _anyone_ has a better idea and is willing to pony
up the patch to make things more sane, please by all means do.
I would prefer not to use libnetbsd as it just introduces
unnecessary churn in Makefiles and dependencies on a compat library
strictly for a couple of C macros.
Thoughts?
Thanks!
-Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMCHbrBXPVfuH0bX0OZFn7KNuebswi_UrS1FoZv_zh4sgA>
