On 2016-03-23 16:19, Yaakov Selkowitz wrote:
While C++11 was the first version of the standard to use C99
functionality,
TR1 (for C++03) also does, and G++ does not distinguish between C++98
and
C++03, or when TR1 is in use. Therefore, while not strictly correct for
"pure" C++98, enabling C99 for all C++ usage is the simplest solution
(and
much better than always using -D_GNU_SOURCE as on Linux).
See thread starting: https://sourceware.org/ml/newlib/2016/msg00297.html
This patch to newlib, along with the attached revised patches to GCC
5.3, allow _GLIBCXX_USE_C99 to be enabled for bare-metal targets.
Newlib is missing support for long double math (real and complex) when
it is different from double. However, AFAICS nothing dependent on just
_GLIBCXX_USE_C99 requires any complex math.