<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi,<br>
<br>
I have built libcxx using the newlib library.<br>
However, in libcxx's cmath, there are several times that identifiers clash with those in newlib's math.h<br>
<br>
For example, new lib defines signbit using '__x':<br>
    #define signbit(x) \<br>
              (__extension__ ({__typeof__(x) __x = (x); \<br>
                               (sizeof(__x) == sizeof(float)) ? __signbitf(__x) : __signbitd(__x);}))<br>
<br>
and libcxx uses this macro but also uses '__x':<br>
    template <class _A1><br>
    _LIBCPP_ALWAYS_INLINE<br>
    bool<br>
    __libcpp_signbit(_A1 __x) _NOEXCEPT<br>
    {<br>
        return signbit(__x);<br>
    }<br>
<br>
Resulting in self initializations of "__x":<br>
    template <class _A1><br>
    __attribute__ ((__visibility__("hidden"), __always_inline__))<br>
    bool<br>
    __libcpp_signbit(_A1 __x) noexcept<br>
    {<br>
        return (__extension__ ({__typeof__(__x) __x = (__x); (sizeof(__x) == sizeof(float)) ? __signbitf(__x) : __signbitd(__x);}));<br>
    }<br>
<br>
<br>
How should this be remedied?<br>
How about changing the symbols from __x,  __y, __z, __e  to __libcpp_x, __libcpp_y, __libcpp_z, __libcpp_e?<br>
<br>
I have not yet checked for similar problems else where, but will.<br>
<br>
Thank you<br>
<br>
Robert<br>
<br>
<br>
</div>
</body>
</html>