NetBSD-Users archive

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

Re: NetBSD macros



On Dec 11, 2009, at 10:03 AM, Thor Lancelot Simon wrote:
> On Fri, Dec 11, 2009 at 04:44:29PM +0000, Matthias Scheler wrote:
>> I don't think it is a particular good idea to try to figure out the
>> operation system version from "sys/param.h".
> 
> What else can you do, in the source to a C program?  Please don't say
> "use autoconf, spend minutes of run time, and write a value from uname's
> output into a private header file" -- the values are in param.h so you
> *don't* have to do horrible things like that.

The biggest problem I have with autoconf isn't so much the slowness of the 
process, but problem of encouraging developers into making too many decisions 
at compile-time which could better be made at runtime.  It's entirely possible 
to build a binary under one version of the system and run it on a later 
revision, or to build something on a single-processor system for testing/QA 
purposes, and then run it in production usage on SMP hardware, etc.  This 
becomes more important as people  run things more commonly in chroot() 
environments, jails, as users with smaller (or different) limits, under VMs, 
etc.

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.

Regards,
-- 
-Chuck



Home | Main Index | Thread Index | Old Index