|
Message-ID: <1360354336.2983.395.camel@eris.loria.fr>
Date: Fri, 08 Feb 2013 21:12:16 +0100
From: Jens Gustedt <jens.gustedt@...ia.fr>
To: musl@...ts.openwall.com
Subject: Re: musl detection by preprocessor
Am Freitag, den 08.02.2013, 13:55 -0500 schrieb Rich Felker:
> This kind of macro intentionally isn't provided, ...
>
> My position, and the position of most people involved with the
> project, is that applications should test for features (e.g. with a
> configure script or standardized per-feature macros defined in
> headers) rather than hard-coding assumptions about which version of an
> OS/library has which features. (Note that, in the OS case, screwing
> this up has broken packages that assumed Linux version X lacks
> behavior Y, when a particular distribution backported behavior Y to
> version X.)
I would completely subscribe to that logic. I see that on the compiler
side that it is much easier to work with clang's has_feature (etc)
that just with version numbers as gcc does, and where basically all
immitations of gcc get it wrong in some place.
That said, I think it would be better in turn not to rely on just that
kind of logic to provide extension features of other libraries. This
__GNUC_SOURCE thing is exactly a way how these things then go wrong.
> > I'd like to distinguish the platform as early as possible, ideally
> > *before* I include any files, such that I can base decisions on which
> > files to include only on #defines that the pure compiler provides.
>
> I'm not sure how you can determine with just the standard macros that
> you're on a POSIX or POSIX-like system where you have unistd.h...
Sure, usually you have to provide that information on the commandline
or through extensions (such as -std=gnu99). On POSIX systems you have
the getconf tool that provides reliable information about the
system:
getconf _POSIX_VERSION
should always work.
I probably have to review my include ordering a bit, currently I
set __GNUC_SOURCE *before* including unistd.h. I understood from their
docs that this is the way it is meant to be. Only by having it defined
before, I will in fact see the extensions they provide.
Jens
--
:: INRIA Nancy Grand Est :: http://www.loria.fr/~gustedt/ ::
:: AlGorille ::::::::::::::: office Nancy : +33 383593090 ::
:: ICube :::::::::::::: office Strasbourg : +33 368854536 ::
:: ::::::::::::::::::::::::::: gsm France : +33 651400183 ::
:: :::::::::::::::::::: gsm international : +49 15737185122 ::
Download attachment "signature.asc" of type "application/pgp-signature" (199 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.