On 29 June 2011 23:10, eric wrote: > test1.cpp:7:67: error: operator '&&' has no right operand That's because gmail wrapped these lines: #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined(__UCLIBC__) Try putting a \ character at the end of the first line, after the && Please make that change and try again. This should tell us if your glibc doesn't have locale support, it's the test that libstdc++ uses to enable clocale=gnu > test1.cpp:10:2: error: #error bad glibc > > > On Wed, 2011-06-29 at 21:51 +0100, Jonathan Wakely wrote: >> >> #define _GNU_SOURCE 1 >> #include <string.h> >> #include <locale.h> >> >> #include <features.h> >> #if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && >> !defined(__UCLIBC__) >> #else >> #error bad glibc >> #endif >> >> >> int >> main () >> { >> char s[128]; >> __locale_t loc; >> strxfrm_l(s, "C", 5, loc); >> strerror_l(5, loc); >> >> >> return 0; >> } >> >> > >