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]

Re: strtold() availability

On Mar  7 17:04, VÃclav Zeman wrote:
> Hi.
> This bit from /usr/include/stdlib.h hides the `strtold()` function
> even though the `strtold` symbol appears to be exported from
> `cygwin1.dll`:
> ~~~~{.c}
> /* On platforms where long double equals double.  */
> #ifdef _LDBL_EQ_DBL
> #if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) ||
> (__cplusplus >= 201103L)
> extern long double strtold (const char *__restrict, char **__restrict);
> #endif
> #endif /* _LDBL_EQ_DBL */
> ~~~~
> This in turn breaks my source because I cannot use `_GLIBCXX_USE_C99`
> to expose some C++11 features like `std::vsnprintf()`.
> Shouldn't the `_LDBL_EQ_DBL` guard be removed and the function exposed
> regardless of `double` and `long double` sizes?

I fixed that in newlib after a discussion with my co-maintainer.
strtold now gets defined if _HAVE_LONG_DOUBLE is defined.  This is
the case for Cygwin, for instance.

Thanks for the report,

Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpYtlf1lLZRc.pgp
Description: PGP signature

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