Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.0
-
openSUSE Tumbleweed x86_64 (other details can be seen in the config)
-
-
1d9d7839784e5d4736844d08fb07f0a2faf85581
Description
Building the latest qtbase dev (60f83a76756342de66d0d97353e8392083deae3a at the time of writing) fails when using CMake while functioning normally with QMake.
/home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp: In member function ‘virtual QString QIconvCodec::convertToUnicode(const char*, int, QTextCodec::ConverterState*) const’: /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:206:39: error: invalid conversion from ‘const char**’ to ‘char**’ [-fpermissive] 206 | size_t ret = iconv(state->cd, &inBytes, &inBytesLeft, &outBytes, &outBytesLeft); | ^~~~~~~~ | | | const char** In file included from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec_p.h:59, from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:42: /usr/include/iconv.h:42:54: note: initializing argument 2 of ‘size_t iconv(iconv_t, char**, size_t*, char**, size_t*)’ 42 | extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, | ~~~~~~~~~~~~~~~~~~^~~~~~~ /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp: In function ‘bool setByteOrder(iconv_t)’: /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:287:19: error: invalid conversion from ‘const char**’ to ‘char**’ [-fpermissive] 287 | if (iconv(cd, inBytesPtr, &inBytesLeft, &outBytes, &outBytesLeft) == (size_t) -1) { | ^~~~~~~~~~ | | | const char** In file included from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec_p.h:59, from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:42: /usr/include/iconv.h:42:54: note: initializing argument 2 of ‘size_t iconv(iconv_t, char**, size_t*, char**, size_t*)’ 42 | extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, | ~~~~~~~~~~~~~~~~~~^~~~~~~ /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp: In member function ‘virtual QByteArray QIconvCodec::convertFromUnicode(const QChar*, int, QTextCodec::ConverterState*) const’: /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:360:30: error: invalid conversion from ‘const char**’ to ‘char**’ [-fpermissive] 360 | if (iconv(state->cd, inBytesPtr, &inBytesLeft, &outBytes, &outBytesLeft) == (size_t) -1) { | ^~~~~~~~~~ | | | const char** In file included from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec_p.h:59, from /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp:42: /usr/include/iconv.h:42:54: note: initializing argument 2 of ‘size_t iconv(iconv_t, char**, size_t*, char**, size_t*)’ 42 | extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, | ~~~~~~~~~~~~~~~~~~^~~~~~~
Attached are the configuration logs for both a CMake and a QMake build.
Building qiconvcodec.cpp with CMake:
[ 39%] Building CXX object src/corelib/CMakeFiles/Core.dir/codecs/qiconvcodec.cpp.o cd /home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib && /usr/bin/c++ -DCore_EXPORTS -DELF_INTERPRETER=\"/lib64/ld-linux-x86-64.so.2\" -DPCRE2_CODE_UNIT_WIDTH=16 -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_CORE_LIB -DQT_CORE_QOBJECT_LIB -DQT_DEPRECATED_WARNINGS -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Ddeprecations -I/home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib/Core_autogen/include -I/home/max/qt-dev/dev.cmake/qtbase.cmake/include -I/home/max/qt-dev/dev.cmake/qtbase.cmake/include/QtCore -I/home/max/qt-dev/dev/qtbase/src/corelib -I/home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib -I/home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib/global -I/home/max/qt-dev/dev/qtbase/src/corelib/../3rdparty/tinycbor/src -I/home/max/qt-dev/dev.cmake/qtbase.cmake/include/QtCore/6.0.0 -I/home/max/qt-dev/dev.cmake/qtbase.cmake/include/QtCore/6.0.0/QtCore -I/home/max/qt-dev/dev/qtbase/src/corelib/../3rdparty/double-conversion/.. -I/home/max/qt-dev/dev/qtbase/src/corelib/../3rdparty/double-conversion/include -I/home/max/qt-dev/dev/qtbase/src/corelib/../3rdparty/forkfd -I/home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib/.rcc -I/home/max/qt-dev/dev/qtbase/mkspecs/linux-g++ -I/home/max/qt-dev/dev/qtbase/src/3rdparty/pcre2/src -g -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fPIC -std=gnu++17 -Winvalid-pch -include /home/max/qt-dev/dev.cmake/qtbase.cmake/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx -o CMakeFiles/Core.dir/codecs/qiconvcodec.cpp.o -c /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp
and with QMake:
g++ -c -include .pch/Qt6Core -pipe -O3 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -Wno-format-overflow -D_REENTRANT -fPIC -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQFLOAT16_INCLUDE_FAST -DELF_INTERPRETER=\"/lib64/ld-linux-x86-64.so.2\" -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DPCRE2_CODE_UNIT_WIDTH=16 -I/home/max/qt-dev/dev/qtbase/src/corelib -I. -Iglobal -I/home/max/qt-dev/dev/qtbase/src/3rdparty/md5 -I/home/max/qt-dev/dev/qtbase/src/3rdparty/md4 -I/home/max/qt-dev/dev/qtbase/src/3rdparty/sha3 -I/home/max/qt-dev/dev/qtbase/src/3rdparty -I/home/max/qt-dev/dev/qtbase/src/3rdparty/double-conversion/include -I/home/max/qt-dev/dev/qtbase/src/3rdparty/forkfd -I/home/max/qt-dev/dev/qtbase/src/3rdparty/tinycbor/src -I.rcc -I../../include -I../../include/QtCore -I../../include/QtCore/6.0.0 -I../../include/QtCore/6.0.0/QtCore -I.moc -I.tracegen -I/home/max/qt-dev/dev/qtbase/src/3rdparty/pcre2/src -I/home/max/qt-dev/dev/qtbase/mkspecs/linux-g++ -o .obj/qiconvcodec.o /home/max/qt-dev/dev/qtbase/src/corelib/codecs/qiconvcodec.cpp
Attachments
Issue Links
- relates to
-
QTBUG-84708 iconv-gnu test fails due to wrong function signature
-
- Closed
-