Date: Sun, 8 Dec 2002 19:04:04 -0500 From: Mike Barcroft <mike@FreeBSD.org> To: Marc Recht <marc@informatik.uni-bremen.de> Cc: David Schultz <dschultz@uclink.Berkeley.EDU>, freebsd-standards@FreeBSD.ORG Subject: Re: POSIX and the real life or FreeBSD too strict ? Message-ID: <20021208190404.H74206@espresso.q9media.com> In-Reply-To: <794560000.1039386792@leeloo.intern.geht.de>; from marc@informatik.uni-bremen.de on Sun, Dec 08, 2002 at 11:33:12PM %2B0100 References: <584000000.1039360297@leeloo.intern.geht.de> <20021208203949.GA535@HAL9000.homeunix.com> <758430000.1039382013@leeloo.intern.geht.de> <20021208214357.GA945@HAL9000.homeunix.com> <794560000.1039386792@leeloo.intern.geht.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Marc Recht <marc@informatik.uni-bremen.de> writes: > > If you say -D_XOPEN_SOURCE=600 instead of -D_XOPEN_SOURCE_=600, > > the first test works fine. ;-) > Argh, too much copying between the systems. That was the rewritten one.. l > = sysconf has been > l = getpagesize(); > before. Which gives you (Wall): implicit declaration of function > `getpagesize'. But, _only_ on FreeBSD 5-current. Did you even look at the header to find out why? The conditional says `#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE'. From this, one might draw the conclusion that getpagesize() was supported in X/Open up until version 500 (SUSv2). Now, compare this to the actual standards and one finds that in SUSv2 getpagesize() was marked LEGACY and in SUSv3 it was removed. If you want SUSv2 functions, use _XOPEN_SOURCE=500 and an appropriate _POSIX_C_SOURCE version. > > The second one looks like a bug in FreeBSD. > For me, too. As I explained in another thread in -current, requesting a standard and then using headers outside that standard's scope is unsupported. This is why no one has bother to change u_int to unsigned int in most non-standard headers. As for the extention to allow POSIX and BSD object to both be visible by defining an extra constant, I don't think this is a very good idea. You end up with each OS having a different escape word, each being unportable. A much more portable solution would be not to request a specific standard at all if one requires things outside that standard's scope. Best regards, Mike Barcroft To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-standards" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021208190404.H74206>
