level Qt up to version 5.7.0 + several bug fixes

Qt5-GUI now gets compiled with support for OpenGL,
however only links against GL stubs provided by the
2d software renderer.
That way we can decide at runtime, whether we want to
use GL or not - with almost no overhead, if not.
This also enables QtQuick2 being built correctly,
which depends on GL support and provides the
possibility of using QtQuick2 with the 2d-sw-renderer
even on hardware without native support for GL.
This commit is contained in:
Mirko Vogt
2016-08-27 21:41:07 +02:00
committed by Mirko Vogt
parent 5c4360ede2
commit d4d2a3d5ea
4 changed files with 106 additions and 93 deletions

View File

@@ -1,20 +1,20 @@
# #
# Copyright (C) 2015 OpenWrt.org # Copyright (C) 2016 OpenWrt.org
# Author: Mirko Vogt <mirko@openwrt.org> # Author: Mirko Vogt <mirko-openwrt@nanl.de>
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
# #
# TODO / known bugs: # TODO / known bugs:
# - only framebuffer (linuxfb) support for now, XBC/DirectFB to come - thus no GL thus no qtquick2 / QML2, as it has a hard dependency on GL # - plugins don't work when sstrip is used for stripping
# - host_build functionality seems to be broken - qmake doesn't switch to the host toolchain (linux-g++) when host_build gets invoked # - no X11/wayland/xcb/kms support so far - primary target is linuxfb
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=qt5base PKG_NAME:=qt5base
PKG_VERSION:=5.4.2 PKG_VERSION:=5.7.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_MD5SUM:=67a95eec79ffc4a14f516ad6f3d24c96 PKG_MD5SUM:=184f9460b40752d71b15b827260580c2
PKG_SYS_NAME:=qtbase-opensource-src-$(PKG_VERSION) PKG_SYS_NAME:=qtbase-opensource-src-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
@@ -31,13 +31,17 @@ include $(INCLUDE_DIR)/nls.mk
include ./files/qmake.mk include ./files/qmake.mk
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_qt5base-plugin-sqldrivers-sqlite \
CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \ CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \
CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
CONFIG_PACKAGE_qt5base-network \ CONFIG_PACKAGE_qt5base-network \
CONFIG_PACKAGE_qt5base-gui \ CONFIG_PACKAGE_qt5base-gui \
CONFIG_PACKAGE_qt5base-plugin-imageformats-gif \ CONFIG_PACKAGE_qt5base-gl \
CONFIG_PACKAGE_qt5base-widgets \
CONFIG_PACKAGE_qt5base-examples \
CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \
CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \ CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \
CONFIG_PACKAGE_qt5base-plugin-platforms-minimal # CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \
# CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \
# Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does # Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does
# not work, because of QT''s internal elf parser, see # not work, because of QT''s internal elf parser, see
@@ -60,7 +64,7 @@ define Package/qt5base/Default
CATEGORY:=Video CATEGORY:=Video
SUBMENU:=Frameworks and Toolkits SUBMENU:=Frameworks and Toolkits
TITLE:=Qt5base TITLE:=Qt5base
DEPENDS:=qt5base DEPENDS+=qt5base
URL:=http://qt.io URL:=http://qt.io
MAINTAINER:=Mirko Vogt <mirko@openwrt.org> MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
endef endef
@@ -77,16 +81,22 @@ define Package/qt5base-concurrent
DEPENDS+=+qt5base-core DEPENDS+=+qt5base-core
endef endef
define Package/qt5base-gl
$(call Package/qt5base/Default)
TITLE+=gl
DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets
endef
define Package/qt5base-core define Package/qt5base-core
$(call Package/qt5base/Default) $(call Package/qt5base/Default)
TITLE+=core TITLE+=core
DEPENDS+=+libpthread +zlib +libpcre16 +libstdcpp +librt $(ICONV_DEPENDS) DEPENDS+=+libpthread +zlib +libpcre16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) #+icu
endef endef
define Package/qt5base-gui define Package/qt5base-gui
$(call Package/qt5base/Default) $(call Package/qt5base/Default)
TITLE+=gui TITLE+=gui
DEPENDS+=+qt5base-core +libpng DEPENDS+=+qt5base-core +qt5quick2-2d-sw-renderer-GLstubs +libpng +fontconfig +libfreetype +libudev
endef endef
define Package/qt5base-network define Package/qt5base-network
@@ -169,11 +179,11 @@ endef
####### imageformats ####### imageformats
define Package/qt5base-plugin-imageformats-gif #define Package/qt5base-plugin-imageformats-gif
$(call Package/qt5base/Default) # $(call Package/qt5base/Default)
TITLE+=imageformat gif (plugin) #TITLE+=imageformat gif (plugin)
DEPENDS+=+qt5base-core +qt5base-gui # DEPENDS+=+qt5base-core +qt5base-gui
endef #endef
define Package/qt5base-plugin-imageformats-ico define Package/qt5base-plugin-imageformats-ico
$(call Package/qt5base/Default) $(call Package/qt5base/Default)
@@ -189,6 +199,18 @@ endef
####### platforms ####### platforms
#define Package/qt5base-plugin-platforms-eglfs
# $(call Package/qt5base/Default)
# TITLE+=platform eglfs (plugin)
# DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
#endef
#define Package/qt5base-plugin-platforms-minimalegl
# $(call Package/qt5base/Default)
# TITLE+=platform minimalegl (plugin)
# DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
#endef
define Package/qt5base-plugin-platforms-linuxfb define Package/qt5base-plugin-platforms-linuxfb
$(call Package/qt5base/Default) $(call Package/qt5base/Default)
TITLE+=platform linuxfb (plugin) TITLE+=platform linuxfb (plugin)
@@ -209,11 +231,11 @@ endef
###### sql ###### sql
define Package/qt5base-plugin-sqldrivers-sqlite #define Package/qt5base-plugin-sqldrivers-sqlite
$(call Package/qt5base/Default) # $(call Package/qt5base/Default)
TITLE+=sqldriver sqlite (plugin) # TITLE+=sqldriver sqlite (plugin)
DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3 # DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3
endef #endef
define Package/qt5base-examples define Package/qt5base-examples
$(call Package/qt5base/Default) $(call Package/qt5base/Default)
@@ -226,7 +248,8 @@ define Package/qt5base-examples
+qt5base-sql \ +qt5base-sql \
+qt5base-xml \ +qt5base-xml \
+qt5base-printSupport \ +qt5base-printSupport \
+qt5base-concurrent +qt5base-concurrent \
+qt5base-gl
endef endef
define Build/Prepare define Build/Prepare
@@ -236,6 +259,10 @@ define Build/Prepare
$(PKG_BUILD_DIR)/mkspecs/ $(PKG_BUILD_DIR)/mkspecs/
endef endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include/freetype2 \
-I$(STAGING_DIR)/usr/include/libdrm
define Build/Configure define Build/Configure
# CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements. # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
# Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.), # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
@@ -249,6 +276,7 @@ define Build/Configure
-prefix $(QT_INSTALL_PREFIX) \ -prefix $(QT_INSTALL_PREFIX) \
-extprefix $(QT_EXTPREFIX) \ -extprefix $(QT_EXTPREFIX) \
-hostprefix $(QT_HOST_PREFIX) \ -hostprefix $(QT_HOST_PREFIX) \
-no-gcc-sysroot \
-bindir $(QT_INSTALL_BINS) \ -bindir $(QT_INSTALL_BINS) \
-headerdir $(QT_INSTALL_HEADERS) \ -headerdir $(QT_INSTALL_HEADERS) \
-libdir $(QT_INSTALL_LIBS) \ -libdir $(QT_INSTALL_LIBS) \
@@ -268,41 +296,46 @@ define Build/Configure
-hostdatadir $(QT_HOST_DATA) \ -hostdatadir $(QT_HOST_DATA) \
-v \ -v \
-release \ -release \
-no-optimized-tools \
-opensource \ -opensource \
-confirm-license \ -confirm-license \
-c++11 \
-shared \ -shared \
-largefile \ -largefile \
-accessibility \ -accessibility \
$(if $(CONFIG_PACKAGE_qt5base-plugin-sqldrivers-sqlite),-system-sqlite,-no-sql-sqlite) \
-no-sql-db2 \ -no-sql-db2 \
-no-sql-ibase \ -no-sql-ibase \
-no-sql-mysql \ -no-sql-mysql \
-no-sql-oci \ -no-sql-oci \
-no-sql-odbc \ -no-sql-odbc \
-no-sql-psql \ -no-sql-psql \
-no-sql-sqlite \
-no-sql-sqlite2 \ -no-sql-sqlite2 \
-no-sql-tds \ -no-sql-tds \
-system-sqlite \
-no-qml-debug \ -no-qml-debug \
-no-nis \
-no-sse2 \
-no-sse3 \ -no-sse3 \
-no-ssse3 \ -no-ssse3 \
-no-sse4.1 \ -no-sse4.1 \
-no-sse4.2 \ -no-sse4.2 \
-no-avx \ -no-avx \
-no-avx2 \ -no-avx2 \
$(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp)\ -no-avx512 \
$(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2)\ $(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp) \
$(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2) \
-no-mips_dspr2 \
-force-pkg-config \ -force-pkg-config \
-system-zlib \ -system-zlib \
-mtdev \ -no-mtdev \
-no-journald \ -no-journald \
-syslog \
-no-gif \
$(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \ $(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \
$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \ $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \
-system-doubleconversion \
-system-freetype \ -system-freetype \
-no-harfbuzz \ -no-harfbuzz \
$(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \ $(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \
-no-libproxy \
-system-pcre \ -system-pcre \
-system-xcb \ -system-xcb \
-system-xkbcommon \ -system-xkbcommon \
@@ -311,16 +344,18 @@ define Build/Configure
-no-glib \ -no-glib \
-no-pulseaudio \ -no-pulseaudio \
-no-alsa \ -no-alsa \
-no-gtkstyle \ -no-gtk \
-no-optimized-qmake \
-nomake tools \ -nomake tools \
-make examples \
$(if $(CONFIG_PACKAGE_qt5base-examples),-make examples,-nomake examples) \ $(if $(CONFIG_PACKAGE_qt5base-examples),-make examples,-nomake examples) \
$(if $(CONFIG_PACKAGE_qt5base-gui),-gui,-no-gui) \ $(if $(CONFIG_PACKAGE_qt5base-gui),-gui,-no-gui) \
$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-gif),,-no-gif) \
$(if $(CONFIG_PACKAGE_qt5base-widgets),-widgets,-no-widgets) \ $(if $(CONFIG_PACKAGE_qt5base-widgets),-widgets,-no-widgets) \
-no-optimized-qmake \ -no-nis \
-no-cups \ -no-cups \
$(if $(CONFIG_BUILD_NLS),-iconv,-no-iconv) \ $(if $(CONFIG_BUILD_NLS),-iconv,-no-iconv) \
-evdev \ -evdev \
-no-tslib \
-no-icu \ -no-icu \
-fontconfig \ -fontconfig \
-no-strip \ -no-strip \
@@ -330,14 +365,18 @@ define Build/Configure
-no-use-gold-linker \ -no-use-gold-linker \
-no-xcb \ -no-xcb \
-no-eglfs \ -no-eglfs \
-no-kms \
-no-gbm \
-no-directfb \ -no-directfb \
$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \ $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \
-no-kms \ -no-mirclient \
-opengl \
$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \ $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \
-xplatform linux-openwrt-g++ \ -no-libinput \
-no-opengl \ -no-gstreamer \
-no-system-proxies \ -system-proxies \
-no-warnings-are-errors \ -no-warnings-are-errors \
-xplatform linux-openwrt-g++ \
) )
endef endef
@@ -362,6 +401,10 @@ define Package/qt5base-core/install
$(call Build/Install/Libs,$(1),libQt5Core) $(call Build/Install/Libs,$(1),libQt5Core)
endef endef
define Package/qt5base-gl/install
$(call Build/Install/Libs,$(1),libQt5OpenGL)
endef
define Package/qt5base-gui/install define Package/qt5base-gui/install
$(call Build/Install/Libs,$(1),libQt5Gui) $(call Build/Install/Libs,$(1),libQt5Gui)
endef endef
@@ -410,9 +453,9 @@ define Package/qt5base-plugin-input-evdevtouch/install
$(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin) $(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin)
endef endef
define Package/qt5base-plugin-imageformats-gif/install #define Package/qt5base-plugin-imageformats-gif/install
$(call Build/Install/Plugins,$(1),imageformats,libqgif) # $(call Build/Install/Plugins,$(1),imageformats,libqgif)
endef #endef
define Package/qt5base-plugin-imageformats-ico/install define Package/qt5base-plugin-imageformats-ico/install
$(call Build/Install/Plugins,$(1),imageformats,libqico) $(call Build/Install/Plugins,$(1),imageformats,libqico)
@@ -426,6 +469,14 @@ define Package/qt5base-plugin-platforms-linuxfb/install
$(call Build/Install/Plugins,$(1),platforms,libqlinuxfb) $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
endef endef
#define Package/qt5base-plugin-platforms-eglfs/install
# $(call Build/Install/Plugins,$(1),platforms,libqeglfs)
#endef
#define Package/qt5base-plugin-platforms-minimalegl/install
# $(call Build/Install/Plugins,$(1),platforms,libqminimalegl)
#endef
define Package/qt5base-plugin-platforms-minimal/install define Package/qt5base-plugin-platforms-minimal/install
$(call Build/Install/Plugins,$(1),platforms,libqminimal) $(call Build/Install/Plugins,$(1),platforms,libqminimal)
endef endef
@@ -434,9 +485,9 @@ define Package/qt5base-plugin-platforms-offscreen/install
$(call Build/Install/Plugins,$(1),platforms,libqoffscreen) $(call Build/Install/Plugins,$(1),platforms,libqoffscreen)
endef endef
define Package/qt5base-plugin-sqldrivers-sqlite/install #define Package/qt5base-plugin-sqldrivers-sqlite/install
$(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite) # $(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite)
endef #endef
define Package/qt5base-examples/install define Package/qt5base-examples/install
$(call Build/Install/Examples,$(1)) $(call Build/Install/Examples,$(1))
@@ -446,6 +497,7 @@ $(eval $(call BuildPackage,qt5base))
$(eval $(call BuildPackage,qt5base-concurrent)) $(eval $(call BuildPackage,qt5base-concurrent))
$(eval $(call BuildPackage,qt5base-core)) $(eval $(call BuildPackage,qt5base-core))
$(eval $(call BuildPackage,qt5base-gui)) $(eval $(call BuildPackage,qt5base-gui))
$(eval $(call BuildPackage,qt5base-gl))
$(eval $(call BuildPackage,qt5base-network)) $(eval $(call BuildPackage,qt5base-network))
$(eval $(call BuildPackage,qt5base-printSupport)) $(eval $(call BuildPackage,qt5base-printSupport))
$(eval $(call BuildPackage,qt5base-sql)) $(eval $(call BuildPackage,qt5base-sql))
@@ -457,11 +509,13 @@ $(eval $(call BuildPackage,qt5base-plugin-input-evdevkeyboard))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet))
$(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch))
$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif)) #$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif))
$(eval $(call BuildPackage,qt5base-plugin-imageformats-ico)) $(eval $(call BuildPackage,qt5base-plugin-imageformats-ico))
$(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg)) $(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg))
$(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb)) $(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb))
#$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs))
#$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl))
$(eval $(call BuildPackage,qt5base-plugin-platforms-minimal)) $(eval $(call BuildPackage,qt5base-plugin-platforms-minimal))
$(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen)) $(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen))
$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite)) #$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite))
$(eval $(call BuildPackage,qt5base-examples)) $(eval $(call BuildPackage,qt5base-examples))

View File

@@ -74,8 +74,8 @@ define Build/Configure/Default
TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \ TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
qmake \ qmake \
-o $(PKG_BUILD_DIR)/$(2)/Makefile \ -o $(PKG_BUILD_DIR)/$(MAKE_PATH)/Makefile \
$(PKG_BUILD_DIR)/$(2)/$(if $(1),$(1),$(PKG_NAME)).pro $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1),$(PKG_NAME)).pro
endef endef
# we need to pass everything to $(MAKE) as well, as Makefiles may invoke qmake once again for creating further Makefiles # we need to pass everything to $(MAKE) as well, as Makefiles may invoke qmake once again for creating further Makefiles
@@ -138,7 +138,7 @@ define Build/Install/Examples
$(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \ $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \
$(1)/$(QT_INSTALL_EXAMPLES)/ $(1)/$(QT_INSTALL_EXAMPLES)/
$(FIND) $(1)/usr/share/qt5/examples/ \ $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \
-type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \ -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \
$(XARGS) $(RM) -vf $(XARGS) $(RM) -vf
endef endef

View File

@@ -1,30 +0,0 @@
From 8f09897de948cea8861ca95e182f442cf15a339e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 8 Jun 2015 13:59:25 -0700
Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T
This helps to make sure that QT_SOCKLEN_T is defined to be 'int'
only when its glibc < 2 and not also for the libraries which may define
it as per standards but are not glibc, e.g. musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/mkspecs/linux-g++/qplatformdefs.h
+++ b/mkspecs/linux-g++/qplatformdefs.h
@@ -78,10 +78,10 @@
#undef QT_SOCKLEN_T
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-#define QT_SOCKLEN_T socklen_t
-#else
+#if defined(__GLIBC__) && (__GLIBC__ < 2)
#define QT_SOCKLEN_T int
+#else
+#define QT_SOCKLEN_T socklen_t
#endif
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)

View File

@@ -1,17 +1,6 @@
--- a/config.tests/unix/iconv/iconv.pro --- a/config.tests/unix/iconv/iconv.pro
+++ b/config.tests/unix/iconv/iconv.pro +++ b/config.tests/unix/iconv/iconv.pro
@@ -1,3 +1,3 @@ @@ -1,2 +1,2 @@
SOURCES = iconv.cpp CONFIG -= qt dylib
CONFIG -= qt dylib -mac|mingw|qnx|haiku:LIBS += -liconv
-mac|mingw|qnx:LIBS += -liconv +mac|mingw|qnx|haiku|linux:LIBS += -liconv
+mac|mingw|qnx|linux:LIBS += -liconv
--- a/src/corelib/codecs/codecs.pri
+++ b/src/corelib/codecs/codecs.pri
@@ -44,6 +44,7 @@ contains(QT_CONFIG,icu) {
contains(QT_CONFIG,iconv) {
HEADERS += codecs/qiconvcodec_p.h
SOURCES += codecs/qiconvcodec.cpp
+ LIBS_PRIVATE *= -liconv
} else:contains(QT_CONFIG,gnu-libiconv) {
HEADERS += codecs/qiconvcodec_p.h
SOURCES += codecs/qiconvcodec.cpp