Skip site navigation (1)Skip section navigation (2)
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>