NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD macros



Sad Clouds wrote:
> On Friday 11 December 2009 18:51:42 Chuck Swiger wrote:
> 
> > In other words, Matthias' suggestion to query uname(3) (and
> > getrlimit(2),
> >  sysctl(3), etc) when the program runs is much better than compiling
> >  in data from a system header and assuming the binary will always run
> >  in that same context.
...
> Under NetBSD, Linux 
> and Solaris you would have to to use different functions.
> 
> There is not much else you can do apart from writing code like:
> 
> #if NetBSD && NetBSD_Version >= 5.0
>       use NetBSD atomic_ops
> #elif Solaris
>       use Solaris atomic_ops
> #elif Linux
>       use Linux atomic_ops
> #else
>       use pthread_mutex_lock
> #endif

And that in fact is why autoconf was invented.  I'm not a huge autoconf
fan except, like old age, for the alternative.  The above tests are
indirect and force you to chase flavors and versions as feature sets
evolve.  Autoconf -- Chuck's wise observation notwithstanding -- provides
direct feature tests, letting you ask not what the OS is, but whether the
function you want is provided (and works).  Which is what you really want.
 

--jkl


Home | Main Index | Thread Index | Old Index