On 7 March 2014 21:08, Corinna Vinschen wrote: > 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.
I think that similar fix needs to be applied to `wchar.h` and `wcstold()`. -- VZ -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple