Patchwork [1/1] qt3: Solve the failure to compile qt3 on platform arm

login
register
mail settings
Submitter Xiaofeng Yan
Date Aug. 9, 2011, 8:50 a.m.
Message ID <b58224cc88baa6cfea83da19e0315d1f4307df5b.1312878559.git.xiaofeng.yan@windriver.com>
Download mbox | patch
Permalink /patch/9534/
State New, archived
Headers show

Comments

Xiaofeng Yan - Aug. 9, 2011, 8:50 a.m.
From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

[YOCTO #1348]
The variable "TARGET_OS" has different value when building qt-x11-free-native and \
qt-x11-free.
The different cause failure to compile qt3.
$ bitbake qt-x11-free-native -e | grep ^TARGET_OS
TARGET_OS="linux"
$ bitbake qt-x11-free -e | grep ^TARGET_OS
TARGET_OS="linux-gnueabi"

Use "TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}" in place of TARGET_OS \
for solving this bug.

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
Richard Purdie - Aug. 10, 2011, 12:30 p.m.
On Tue, 2011-08-09 at 16:50 +0800, Xiaofeng Yan wrote:
> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> 
> [YOCTO #1348]
> The variable "TARGET_OS" has different value when building qt-x11-free-native and \
> qt-x11-free.
> The different cause failure to compile qt3.
> $ bitbake qt-x11-free-native -e | grep ^TARGET_OS
> TARGET_OS="linux"
> $ bitbake qt-x11-free -e | grep ^TARGET_OS
> TARGET_OS="linux-gnueabi"
> 
> Use "TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}" in place of TARGET_OS \
> for solving this bug.

This doesn't look right.

-native packages shouldn't have *any* target system dependencies, they
should build once and be suitable for all targets.

This sounds like we're encoding target specific information into native
recipes which we can't do.

It sounds like we need to look for linux-oe-g++ even in the qemuarm case
so its the target recipe which needs fixing to always use "linux"
instead of "linux-gnueabi" in the arm case.

Cheers,

Richard

> 
> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> ---
>  recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
> index e64256f..fe04a4a 100644
> --- a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
> +++ b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
> @@ -4,10 +4,11 @@ PRIORITY = "optional"
>  LICENSE = "GPL | QPL"
>  DEPENDS = "xmu-native"
>  HOMEPAGE = "http://www.trolltech.com"
> -PR = "r0"
> +PR = "r1"
>  
>  PROVIDES += "qt-x11-free-native"
>  FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qt-x11-free"
> +TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}
>  
>  LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=629178675a7d49c9fa19dfe9f43ea256 \
>                      file://LICENSE.QPL;md5=fff372435cb41647bc0b3cb940ea5c51"
> @@ -26,7 +27,7 @@ export QTDIR = "${S}"
>  export SYSCONF_CXX = "${CCACHE} g++"
>  export SYSCONF_CC  = "${CCACHE} gcc"
>  export SYSCONF_LINK  = "${CCACHE} g++"
> -THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGET_OS}-oe-g++"
> +THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGETOS}-oe-g++"
>  export QMAKESPEC = ""
>  ARCH_i686 = "x86"
>  
> @@ -57,7 +58,7 @@ do_install() {
>   
>      install -d ${D}${datadir}/qt3/
>      cp -PfR mkspecs ${D}${datadir}/qt3/
> -    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGET_OS}-oe-g++
> +    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGETOS}-oe-g++
>      ln -s ${D}${datadir}/qt3/mkspecs/ ${D}${datadir}/qmake
>      install -d ${D}${libdir}/
>      oe_soinstall lib/libqt-mt.so.${PV} ${D}${libdir}/
Xiaofeng Yan - Aug. 12, 2011, 5:43 a.m.
On 2011?08?10? 20:30, Richard Purdie wrote:
> On Tue, 2011-08-09 at 16:50 +0800, Xiaofeng Yan wrote:
>> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>>
>> [YOCTO #1348]
>> The variable "TARGET_OS" has different value when building qt-x11-free-native and \
>> qt-x11-free.
>> The different cause failure to compile qt3.
>> $ bitbake qt-x11-free-native -e | grep ^TARGET_OS
>> TARGET_OS="linux"
>> $ bitbake qt-x11-free -e | grep ^TARGET_OS
>> TARGET_OS="linux-gnueabi"
>>
>> Use "TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}" in place of TARGET_OS \
>> for solving this bug.
> This doesn't look right.
>
> -native packages shouldn't have *any* target system dependencies, they
> should build once and be suitable for all targets.
>
> This sounds like we're encoding target specific information into native
> recipes which we can't do.
>
> It sounds like we need to look for linux-oe-g++ even in the qemuarm case
> so its the target recipe which needs fixing to always use "linux"
> instead of "linux-gnueabi" in the arm case.
>
> Cheers,
>
> Richard
>
I have understood what you mean and will modify my fault.
thanks very much.

Cheers,

Yan
>> Signed-off-by: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>> ---
>>   recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb |    7 ++++---
>>   1 files changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
>> index e64256f..fe04a4a 100644
>> --- a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
>> +++ b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
>> @@ -4,10 +4,11 @@ PRIORITY = "optional"
>>   LICENSE = "GPL | QPL"
>>   DEPENDS = "xmu-native"
>>   HOMEPAGE = "http://www.trolltech.com"
>> -PR = "r0"
>> +PR = "r1"
>>
>>   PROVIDES += "qt-x11-free-native"
>>   FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qt-x11-free"
>> +TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}
>>
>>   LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=629178675a7d49c9fa19dfe9f43ea256 \
>>                       file://LICENSE.QPL;md5=fff372435cb41647bc0b3cb940ea5c51"
>> @@ -26,7 +27,7 @@ export QTDIR = "${S}"
>>   export SYSCONF_CXX = "${CCACHE} g++"
>>   export SYSCONF_CC  = "${CCACHE} gcc"
>>   export SYSCONF_LINK  = "${CCACHE} g++"
>> -THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGET_OS}-oe-g++"
>> +THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGETOS}-oe-g++"
>>   export QMAKESPEC = ""
>>   ARCH_i686 = "x86"
>>
>> @@ -57,7 +58,7 @@ do_install() {
>>
>>       install -d ${D}${datadir}/qt3/
>>       cp -PfR mkspecs ${D}${datadir}/qt3/
>> -    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGET_OS}-oe-g++
>> +    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGETOS}-oe-g++
>>       ln -s ${D}${datadir}/qt3/mkspecs/ ${D}${datadir}/qmake
>>       install -d ${D}${libdir}/
>>       oe_soinstall lib/libqt-mt.so.${PV} ${D}${libdir}/
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>

Patch

diff --git a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
index e64256f..fe04a4a 100644
--- a/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
+++ b/recipes-qt3/qt3/qt-x11-free-native_3.3.5.bb
@@ -4,10 +4,11 @@  PRIORITY = "optional"
 LICENSE = "GPL | QPL"
 DEPENDS = "xmu-native"
 HOMEPAGE = "http://www.trolltech.com"
-PR = "r0"
+PR = "r1"
 
 PROVIDES += "qt-x11-free-native"
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qt-x11-free"
+TARGETOS = linux${LIBCEXTENSION}${ABIEXTENSION}
 
 LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=629178675a7d49c9fa19dfe9f43ea256 \
                     file://LICENSE.QPL;md5=fff372435cb41647bc0b3cb940ea5c51"
@@ -26,7 +27,7 @@  export QTDIR = "${S}"
 export SYSCONF_CXX = "${CCACHE} g++"
 export SYSCONF_CC  = "${CCACHE} gcc"
 export SYSCONF_LINK  = "${CCACHE} g++"
-THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGET_OS}-oe-g++"
+THIS_QMAKESPEC = "${STAGING_DATADIR}/qmake/${TARGETOS}-oe-g++"
 export QMAKESPEC = ""
 ARCH_i686 = "x86"
 
@@ -57,7 +58,7 @@  do_install() {
  
     install -d ${D}${datadir}/qt3/
     cp -PfR mkspecs ${D}${datadir}/qt3/
-    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGET_OS}-oe-g++
+    ln -sf linux-g++ ${D}${datadir}/qt3/mkspecs/${TARGETOS}-oe-g++
     ln -s ${D}${datadir}/qt3/mkspecs/ ${D}${datadir}/qmake
     install -d ${D}${libdir}/
     oe_soinstall lib/libqt-mt.so.${PV} ${D}${libdir}/