This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cygwin 1.7/1.5 C99 conformance (GCC, libc)


I recently figured that ctrio (from fails to link (GCC 3.4.4 here).

Reason is that ctrio checks the __STDC_VERSION__ for C99 support, which there is, and assumes that the implementation were a hosted one (as opposed to a freestanding one) and uses powl() without further checks.

Now, Cygwin 1.5 and 1.7 appear to lack long double library support in libc/libm -- which is required for a hosted C99 implementation however, but not for a freestanding C99 implementation.

Trying to solve this, I found another Cygwin issue: GCC 3.4.4 sets __STDC_HOSTED__ to 1 by default (that's a GCC factory default).

I propose that this gets overridden to 0 in Cygwin-ported GCC compilers until the library support for a C99-conforming full hosted implementation is in place, so that applications can safely check

#if __STDC_HOSTED__ - 0 > 0
/* assume hosted C99 implementation, i. e. with powl() capable libc/libm */
/* ... */


Best regards

Matthias Andree

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]