Date: Sun, 08 Dec 2002 22:13:33 +0100 From: Marc Recht <marc@informatik.uni-bremen.de> To: David Schultz <dschultz@uclink.Berkeley.EDU> Cc: freebsd-standards@FreeBSD.ORG Subject: Re: POSIX and the real life or FreeBSD too strict ? Message-ID: <758430000.1039382013@leeloo.intern.geht.de> In-Reply-To: <20021208203949.GA535@HAL9000.homeunix.com> References: <584000000.1039360297@leeloo.intern.geht.de> <20021208203949.GA535@HAL9000.homeunix.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--==========1354966650==========
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
> What you're asking for is reasonable, but there's a problem of
> namespace pollution. A application that uses only POSIX features
> is supposed to compile on a conforming implementation when
> _POSIX_C_SOURCE is appropriately defined. If standard headers add
> extra symbols and macros that are not specified in POSIX, you
> can't make that guarantee due to potential name conflicts. The
> whole point of using _POSIX_SOURCE is to turn of extensions that
> might break things.
I don't say that there might be a perfect solution, but breaking source=20
compatibility to other UNIX implementation is IMHO worse.
> By the way, Solaris also has the behavior you're complaining
> about, but there is a workaround. If you define _POSIX_C_SOURCE,
Hmm, not from my last experiences.. (But, I'm not doing that much on=20
Solaris.)
> you get precisely the features specified in POSIX, and if you
> additionally define __EXTENSIONS__, you get everything. I'm not
IMHO something like that is absolutly neccessary.
> sure what ``other UNIX implementations'' you've been looking at,
> but a cursory glance at glibc reveals that it is in the same boat
> as FreeBSD.
I've tried the following two sources on FreeBSD-current (today), FreeBSD=20
4.7-RC, NetBSD 1.6 (gcc2.95),
Solaris 8/Sparc (gcc 3.0) and Gentoo Linux (gcc 3.2, today).
gcc -D_POSIX_C_SOURCE=3D200112L -D_XOPEN_SOURCE_=3D600=20
-D_XOPEN_SOURCE_EXTENDED=3D1
On -current both sources can't be compiled. On FreeBSD 4.x the first can't=20
be compiled (because of _SC_PAGE_SIZE). All other OSes compiled them just=20
fine.
1)
#include <unistd.h>
#include <stdio.h>
int main() {
long l =3D 0;
l =3D sysconf(_SC_PAGE_SIZE);
printf ("\nsize: %ld\n", l);
return 0;
}
2)
#include <sys/types.h>
#include <sys/file.h>
int main() {
return 0;
}
Regards,
Marc
"Premature optimization is the root of all evil." -- Donald E. Knuth
--==========1354966650==========
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)
iD8DBQE987X97YQCetAaG3MRAsMwAKCIrNAx4UU25nrBSdMqoFG9xfDKFACfWcXM
Diqjdhj5yUPwYnpmY3Mm57A=
=GgMd
-----END PGP SIGNATURE-----
--==========1354966650==========--
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?758430000.1039382013>
