--- qt-everywhere-opensource-src-4.8.6/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp +++ qt-everywhere-opensource-src-4.8.6-uclibc/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp @@ -48,7 +48,11 @@ int main(int, char **) { iconv_t x = iconv_open("", ""); +#ifdef __UCLIBC__ + char *inp; +#else const char *inp; +#endif char *outp; size_t inbytes, outbytes; iconv(x, &inp, &inbytes, &outp, &outbytes); --- qt-everywhere-opensource-src-4.8.6/src/corelib/codecs/qiconvcodec.cpp +++ qt-everywhere-opensource-src-4.8.6-uclibc/src/corelib/codecs/qiconvcodec.cpp @@ -219,7 +219,7 @@ QString QIconvCodec::convertToUnicode(co IconvState *state = *pstate; size_t inBytesLeft = len; // best case assumption, each byte is converted into one UTF-16 character, plus 2 bytes for the BOM -#ifdef GNU_LIBICONV +#if defined(GNU_LIBICONV) && !defined(__UCLIBC__) // GNU doesn't disagree with POSIX :/ const char *inBytes = chars; #else @@ -318,7 +318,7 @@ static bool setByteOrder(iconv_t cd) size_t outBytesLeft = sizeof buf; size_t inBytesLeft = sizeof bom; -#if defined(GNU_LIBICONV) +#if defined(GNU_LIBICONV) && !defined(__UCLIBC__) const char **inBytesPtr = const_cast(&inBytes); #else char **inBytesPtr = &inBytes; @@ -338,7 +338,7 @@ QByteArray QIconvCodec::convertFromUnico char *outBytes; size_t inBytesLeft; -#if defined(GNU_LIBICONV) +#if defined(GNU_LIBICONV) && !defined(__UCLIBC__) const char **inBytesPtr = const_cast(&inBytes); #else char **inBytesPtr = &inBytes;