Date: Fri, 7 Feb 1997 15:23:06 +1100 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, chuckr@glue.umd.edu Cc: freebsd-ports@FreeBSD.org, hackers@FreeBSD.org, imp@village.org, obrien@NUXI.com Subject: Re: conditionally including <sys/param.h> Message-ID: <199702070423.PAA19335@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> But they certainly should accept anything with __FooBSD__ or BSD >= mmm >> or __FooBSD_version >= nnn. That would give 100-line ifdefs to support >> 100 OS's. It's also useless for communicating what is different in >> FooBSD. > >I don't disagree, I'm just saying that flatly including sys/param.h with >no qualifiers means that it will be a fatal error on any machine that >doesn't have a sys/param.h, so that's not acceptable. The application authors should already have a way of handling the possible nonexistence of sys/param.h, and it is unlikely to be the same as ours. If not, then they should refuse to add anything involving sys/param.h. >non-fatal in nature to systems without sys/param.h. The method I suggest >above is messy, but (and _please_ correct me if I'm wrong) it has the sole >benefit of being the only one I've seen that is non-fatal on systems that >don't have a sys/param.h. I forget what it is. The only method that is (almost) guaranteed to work is a test involving an identifier that is defined outside of the the application, perhaps in bsd.ports.mk, e.g., #ifdef HAVE_SYS_PARAM_H #include <sys/param.h> #endif This breaks if the identifier already has a different meaning to the application (not likely) and is inconvenient if the application and/or other supported targets already have a different spelling for the identifier. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702070423.PAA19335>