[v3] c++0x includes
Paolo Carlini
pcarlini@suse.de
Tue Mar 6 09:56:00 GMT 2007
Hi Kaveh,
>>.../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 strange thing is that, as you can see a few lines above in that
file, that code is protected by _GLIBCXX_USE_C99_MATH_TR1, which, in
turn, is defined only if the specific GLIBCXX_CHECK_C99_TR1 test
succeeds at configure time.
Therefore, I'd ask you to figure out what is going wrong on solaris in
that chain: apparently _GLIBCXX_USE_C99_MATH_TR1 is defined but llrint &
co are then not available during the compilation of the testcase. For
instance, can you try to build / install the C++ compiler normally and
then try to compile simple C++ snippets like:
#include <tr1/cmath>
// #include <cmath>
// #include <cmath> + -std=c++0x on the command line
#ifdef _GLIBCXX_USE_C99_MATH_TR1
using ::llrint;
#else
#error Not defined on Solaris?!?
#endif
One final question: why
testsuite/tr1/8_c_compatibility/cmath/functions.cc is not failing, on
your target (you could investigate the compilation of that too outside
the testsuite)?
Thanks,
Paolo.
More information about the Libstdc++
mailing list