[v3] c++0x includes

Kaveh R. GHAZI ghazi@caip.rutgers.edu
Tue Mar 6 03:20:00 GMT 2007


On Mon, 5 Mar 2007, Kaveh R. GHAZI wrote:

> > Maybe Kaveh (or Eric) can provide some additional info from the
> > ChangeLog about that (I'm going to wait a bit before committing my
> > already posted patch to not include cstdlib, and will also delay other
> > improvements in queue...)
> > Thanks,
> > Paolo.
>
> The new failures are all compile-time errors of this form:
>
> FAIL: 17_intro/headers/c++200x/all.cc (test for excess errors)
> Excess errors:
> In file included from .../sparc-sun-solaris2.10/libstdc++-v3/include/cmath:600,
>                  from .../sparc-sun-solaris2.10/libstdc++-v3/include/complex:49,
>                  from .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/complex:37,
>                  from .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/ccomplex:37,
>                  from .../sparc-sun-solaris2.10/libstdc++-v3/include/ccomplex:40,
>                  from .../libstdc++-v3/testsuite/17_intro/headers/c++200x/all.cc:26:
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:227: error: '::llrint' has not been declared
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:228: error: '::llrintf' has not been declared
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:229: error: '::llrintl' has not been declared
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:231: error: '::llround' has not been declared
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:232: error: '::llroundf' has not been declared
> .../sparc-sun-solaris2.10/libstdc++-v3/include/tr1/cmath:233: error: '::llroundl' has not been declared
>

The llrint*/llround* functions on solaris2.10 are wrapped as follows:

#if !defined(_STRICT_STDC) && !defined(_NO_LONGLONG) || defined(_STDC_C99) || \
        defined(__C99FEATURES__)
extern long long int llrint __P((double));
extern long long int llround __P((double));

extern long long int llrintf __P((float));
extern long long int llroundf __P((float));

extern long long int llrintl __P((long double));
extern long long int llroundl __P((long double));
#endif

So we're just not getting the right combination of defined/undefined
macros to activate these prototypes.  I don't have any context to explain
why this just popped up now though, so I don't know which ones should be
tweeked to get them back.

		--Kaveh
--
Kaveh R. Ghazi			ghazi@caip.rutgers.edu



More information about the Libstdc++ mailing list