Fix bug 2355
Hi Richard and Saul,
This pull request is to fix bug 2355, please help to review and pull.
Change from v2:
Keep the qt4_arch.inc file and put set_arch() and set_endian() functions there.
Thanks,
Dongxiao
The following changes since commit 2929e7d590862d9649458c90804e79a1dce40423:
glib-2.0: Fix issues with libelf dependency creeping in (2012-05-07 10:53:24 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib dxu4/multilib
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dxu4/multilib
Dongxiao Xu (1):
qt4: move functions from python to shell style
meta/recipes-qt/qt4/qt4-embedded.inc | 2 +- meta/recipes-qt/qt4/qt4-tools-nativesdk.inc | 5 ++- meta/recipes-qt/qt4/qt4-x11-free.inc | 2 +- meta/recipes-qt/qt4/qt4.inc | 5 ++- meta/recipes-qt/qt4/qt4_arch.inc | 36 ++++++++++++--------------- 5 files changed, 24 insertions(+), 26 deletions(-)
Signature · 1 line
1.7.4.1
PATCH 1/1 qt4: move functions from python to shell style
In qt4's do_configure operation, it will refer to some variables that are derived from 'd', however these variable values may be not correct in multilib case since the extraction of these variables happens before the multilib handler.
The fix is to move these python style functions back to shell style.
This fixes [YOCTO #2355]
--- meta/recipes-qt/qt4/qt4-embedded.inc | 2 +- meta/recipes-qt/qt4/qt4-tools-nativesdk.inc | 5 ++- meta/recipes-qt/qt4/qt4-x11-free.inc | 2 +- meta/recipes-qt/qt4/qt4.inc | 5 ++- meta/recipes-qt/qt4/qt4_arch.inc | 36 ++++++++++++--------------- 5 files changed, 24 insertions(+), 26 deletions(-)
meta/recipes-qt/qt4/qt4-embedded.inc +1 -1
@@ -2,7 +2,7 @@ DESCRIPTION = "Qt is a versatile cross-platform application framework -- this is SECTION = "libs" HOMEPAGE = "http://qt.nokia.com" DEPENDS += "directfb tslib" -INC_PR = "r45" +INC_PR = "r46" QT_BASE_LIB ?= "libqt-embedded"
meta/recipes-qt/qt4/qt4-tools-nativesdk.inc +3 -2
@@ -4,7 +4,7 @@ SECTION = "libs" HOMEPAGE = "http://qt.nokia.com" LICENSE = "LGPLv2.1 | GPLv3" -INC_PR = "r10" +INC_PR = "r11" FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt-${PV}:"
@@ -40,7 +40,7 @@ EXTRA_OECONF = "-prefix ${prefix} \ -verbose -release -fast -static \ -platform ${TARGET_OS}-oe-g++ \ -xplatform ${TARGET_OS}-oe-g++ \ - -arch ${@qt_arch(d)} \ + -arch ${QT_ARCH} \ -embedded -no-freetype -no-glib -no-iconv \ -qt3support \ -I${STAGING_DIR_HOST}${SDKPATHNATIVE}/usr/include/dbus-1.0 \
@@ -71,6 +71,7 @@ do_configure() { if [ ! -e bin/qmake ]; then ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake fi + set_arch (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" }
meta/recipes-qt/qt4/qt4-x11-free.inc +1 -1
@@ -5,7 +5,7 @@ HOMEPAGE = "http://qt.nokia.com" SECTION = "x11/libs" DEPENDS += "virtual/libgl virtual/libx11 fontconfig libxft libxext libxrender libxrandr libxcursor" -INC_PR = "r43" +INC_PR = "r44" QT_GLFLAGS ?= "${@base_contains('DISTRO_FEATURES', 'opengl', '-opengl', '-no-opengl', d)} " QT_GLFLAGS_qemux86 = "-opengl"
meta/recipes-qt/qt4/qt4.inc +3 -2
@@ -4,8 +4,6 @@ DEPENDS += "qt4-tools-native freetype jpeg libpng zlib dbus openssl glib-2.0 gst DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" require qt4_arch.inc -QT_ARCH := "${@qt_arch(d)}" -QT_ENDIAN = "${@qt_endian(d)}" QT_DISTRO_FLAGS ?= "-no-accessibility -no-sm" QT_DISTRO_FLAGS_linuxstdbase = "-sm"
@@ -200,6 +198,9 @@ do_configure() { unset QMAKESPEC unset QTDIR + set_arch + set_endian + if [ ! -e bin/qmake ]; then ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake fi
meta/recipes-qt/qt4/qt4_arch.inc +16 -20
@@ -2,24 +2,20 @@ inherit siteinfo ARM_INSTRUCTION_SET = "arm" -def qt_arch(d): - import bb, re - arch = d.getVar('TARGET_ARCH', True) - if re.match("^i.86$", arch): - arch = "i386" - elif re.match("^arm.*", arch): - arch = "arm" - elif arch == "x86_64": - arch = "x86" - elif arch == "mipsel": - arch = "mips" - return arch +set_arch() { + case ${TARGET_ARCH} in + arm*) QT_ARCH=arm ;; + i*86*) QT_ARCH=i386 ;; + mips*) QT_ARCH=mips ;; + powerpc*) QT_ARCH=powerpc ;; + x86_64*) QT_ARCH=x86_64 ;; + esac +} -def qt_endian(d): - import bb - if d.getVar('SITEINFO_ENDIANNESS', True) == "le": - return "-little-endian" - elif d.getVar('SITEINFO_ENDIANNESS', True) == "be": - return "-big-endian" - else: - assert False +set_endian() { + if [ ${SITEINFO_ENDIANNESS} = "le" ] ; then + QT_ENDIAN="-little-endian" + elif [ ${SITEINFO_ENDIANNESS} = "be" ] ; then + QT_ENDIAN="-big-endian" + fi +}
Signature · 1 line
1.7.4.1
Richard Purdie
AppliedRe: [PATCH 1/1] qt4: move functions from python to shell style
Quoted 9 lines · Dongxiao Xu
In qt4's
do_configureoperation, it will refer to some variables that are derived from 'd', however these variable values may be not correct in multilib case since the extraction of these variables happens before the multilib handler.The fix is to move these python style functions back to shell style.
This fixes [YOCTO #2355]
Quoted 8 lines
Signed-off-by Dongxiao Xu <[email protected]>--- meta/recipes-qt/qt4/qt4-embedded.inc | 2 +- meta/recipes-qt/qt4/qt4-tools-nativesdk.inc | 5 ++- meta/recipes-qt/qt4/qt4-x11-free.inc | 2 +- meta/recipes-qt/qt4/qt4.inc | 5 ++- meta/recipes-qt/qt4/qt4_arch.inc | 36 ++++++++++++--------------- 5 files changed, 24 insertions(+), 26 deletions(-)
Merged to master with a fix to some of the whitespace, thanks.
Richard