Patchwork [meta-qt5,jansa/qt5-5.2.0] libQt5*.la references OE build directories

login
register
mail settings
Submitter Jacob Kroon
Date Jan. 18, 2014, 10:03 a.m.
Message ID <CAPbeDCkCM3U=qXv-sUKDNxH1zGyC76m2_fsz_DZLouJovCCceA@mail.gmail.com>
Download mbox | patch
Permalink /patch/65151/
State Superseded, archived
Headers show

Comments

Jacob Kroon - Jan. 18, 2014, 10:03 a.m.
Hi Andreas and Martin,

On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:

>
> On Mon, 13 Jan 2014, Martin Jansa wrote:
>
>  On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>>
>>> Hi,
>>>
>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>>> dev-packages.
>>> The files references paths in my OE build environment, like so:
>>>
>>> ...
>>> # Libraries that this one depends upon.
>>> dependency_libs='-lQt5Gui
>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>> sysroots/wandboard-solo/usr/lib
>>> -lQt5Core -lpthread '
>>> ...
>>> # Directory that this library needs to be installed in:
>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>> sysroots/wandboard-solo/usr'
>>> ...
>>>
>>> I noticed this since my Qt5 autotools project wouldn't link properly when
>>> using the SDK, unless I first removed all libQt5*.la files.
>>>
>>> I'm not quite sure where to look for the problem so any pointers would be
>>> appreciated.
>>>
>>
>> Probably bad rebase on my side, please compare
>>
>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>>
>> changed in:
>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
>> and
>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>>
>> Or better in meta-qt5's qtbase repo:
>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
>> features/qt_module.prf
>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
>> features/qt_module.prf
>>
>>
> I tried building Qt 5.1.1 from master again, the .la-files do look better,
> "libdir" looks correct (taken from libQt5Svg.la):
>
> <snip>
>
> # Directory that this library needs to be installed in:
> libdir='/usr/lib'
> </snip>
>
> however
>
> <snip>
>
> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> -lpthread '
> </snip>
>
> Dunno wether this is a problem or not, I never tried building the project
> with 5.1.1 using the SDK.
>
> Will hopefully have some time tomorrow to look at the links you sent.
>
> Thanks,
>
> Jacob
>

I'm trying to get the .la-files for Qt5 dev-packages correct.

What I've come up with so far is attached in the patch (to be applied in
top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)

With the patch applied I can still build both an image and an SDK, and also
the resulting SDK can be used to build my QT5 autotools projects. But I get
these warnings when building for instance "qtxmlpatterns":

WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
include and/or library paths were used.

With my patch applied,
recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
like this:

The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
? With all the sed:ing going on, that path looks phony to me...

From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
QMAKE_PRL_BUILD_DIR =
/home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
QMAKE_PRL_LIBS =
-L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
-lQt5Core -lpthread

From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
dependency_libs=' -lQt5Core -lpthread '
libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'

From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
QMAKE_PRL_BUILD_DIR =
/home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread

From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
dependency_libs=' -lQt5Core -lpthread '
libdir='/usr/lib'

  -- Jacob (very confused)
Martin Jansa - Jan. 18, 2014, 11:38 a.m.
On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
> Hi Andreas and Martin,
> 
> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
> 
> >
> > On Mon, 13 Jan 2014, Martin Jansa wrote:
> >
> >  On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
> >>
> >>> Hi,
> >>>
> >>> I'm seeing what I believe is a problem with the *.la files in the Qt5
> >>> dev-packages.
> >>> The files references paths in my OE build environment, like so:
> >>>
> >>> ...
> >>> # Libraries that this one depends upon.
> >>> dependency_libs='-lQt5Gui
> >>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>> sysroots/wandboard-solo/usr/lib
> >>> -lQt5Core -lpthread '
> >>> ...
> >>> # Directory that this library needs to be installed in:
> >>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>> sysroots/wandboard-solo/usr'
> >>> ...
> >>>
> >>> I noticed this since my Qt5 autotools project wouldn't link properly when
> >>> using the SDK, unless I first removed all libQt5*.la files.
> >>>
> >>> I'm not quite sure where to look for the problem so any pointers would be
> >>> appreciated.
> >>>
> >>
> >> Probably bad rebase on my side, please compare
> >>
> >> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
> >>
> >> changed in:
> >> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
> >> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
> >> and
> >> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
> >> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >>
> >> Or better in meta-qt5's qtbase repo:
> >> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
> >> features/qt_module.prf
> >> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
> >> features/qt_module.prf
> >>
> >>
> > I tried building Qt 5.1.1 from master again, the .la-files do look better,
> > "libdir" looks correct (taken from libQt5Svg.la):
> >
> > <snip>
> >
> > # Directory that this library needs to be installed in:
> > libdir='/usr/lib'
> > </snip>
> >
> > however
> >
> > <snip>
> >
> > dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> > devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> > -lpthread '
> > </snip>
> >
> > Dunno wether this is a problem or not, I never tried building the project
> > with 5.1.1 using the SDK.
> >
> > Will hopefully have some time tomorrow to look at the links you sent.
> >
> > Thanks,
> >
> > Jacob
> >
> 
> I'm trying to get the .la-files for Qt5 dev-packages correct.
> 
> What I've come up with so far is attached in the patch (to be applied in
> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
> 
> With the patch applied I can still build both an image and an SDK, and also
> the resulting SDK can be used to build my QT5 autotools projects. But I get
> these warnings when building for instance "qtxmlpatterns":
> 
> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
> include and/or library paths were used.

This warning is the reason why I've originally created this patch, so
something is definitely wrong in new version.

I know it's very confusing .prf (and last upstream changes didn't make
it any easier), I'll try to look at it this weekend.

It would be great to prepare some nice reproducer which we can use in
upstream gerrit to show that this really doesn't work well in more
complicated case (like our cross-compile with "sstate-relocateable"
.prl,.la,.pc files, where we really don't want to include host paths).

Do you have something like smaller test case or were you testing it on
"big" qtbase build?

> With my patch applied,
> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
> like this:
> 
> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> @@ -135,30 +135,36 @@ load(qt_installs)
>      rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>  else: \
>      rplbase = $$MODULE_BASE_OUTDIR
> -include_replace.match = $$rplbase/include
> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -include_replace.CONFIG = path
> +pkgconfig_include_replace.match = $$rplbase/include
> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> +pkgconfig_include_replace.CONFIG = path
> +pkgconfig_lib_replace.match = $$rplbase/lib
> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> +pkgconfig_lib_replace.CONFIG = path
>  lib_replace.match = $$rplbase/lib
>  host_build: \
>      lib_replace.replace = $$[QT_HOST_LIBS]
>  else: \
>      lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
>  lib_replace.CONFIG = path
> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
> 
>  unix|win32-g++* {
>     CONFIG += create_pc
>     QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>     QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>     QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> -   QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
> +   QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
> pkgconfig_lib_replace
>  }
> 
>  unix {
> +   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> +   lafile_replace.replace = ""
> +   lafile_replace.CONFIG = path
>     CONFIG += create_libtool explicitlib
>     QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> +   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>  }
> 
> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
> ? With all the sed:ing going on, that path looks phony to me...
> 
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS =
> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
> -lQt5Core -lpthread
> 
> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
> 
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
> QMAKE_PRL_BUILD_DIR =
> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
> 
> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
> dependency_libs=' -lQt5Core -lpthread '
> libdir='/usr/lib'
> 
>   -- Jacob (very confused)

> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> index f85fb33..5503e1a 100644
> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
>   mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
>   1 file changed, 31 insertions(+), 12 deletions(-)
>  
> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
> -index 11509ee..2f95684 100644
> ---- a/mkspecs/features/qt_module.prf
> -+++ b/mkspecs/features/qt_module.prf
> -@@ -135,30 +135,49 @@ load(qt_installs)
> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> +===================================================================
> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> +@@ -135,30 +135,36 @@ load(qt_installs)
>       rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>   else: \
>       rplbase = $$MODULE_BASE_OUTDIR
>  -include_replace.match = $$rplbase/include
>  -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>  -include_replace.CONFIG = path
> --lib_replace.match = $$rplbase/lib
> --host_build: \
> --    lib_replace.replace = $$[QT_HOST_LIBS]
> --else: \
>  +pkgconfig_include_replace.match = $$rplbase/include
>  +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> ++pkgconfig_include_replace.CONFIG = path
>  +pkgconfig_lib_replace.match = $$rplbase/lib
>  +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> -+!exists($$[QT_SYSROOT]) {
> -+    include_replace.match = $$rplbase/include
> -+    include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> -+    include_replace.CONFIG = path
> -+    lib_replace.match = $$rplbase/lib
> ++pkgconfig_lib_replace.CONFIG = path
> + lib_replace.match = $$rplbase/lib
> + host_build: \
> +     lib_replace.replace = $$[QT_HOST_LIBS]
> + else: \
>       lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> --lib_replace.CONFIG = path
> -+    lib_replace.CONFIG = path
> -+    lafile_replace.match = $$rplbase
> -+    lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
> -+} else {
> -+    # include_replace and lib_replace are duplicate, but we don't want to
> -+    # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
> -+    include_replace.match = $$rplbase
> -+    include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> -+    include_replace.CONFIG = path
> -+    lib_replace.match = $$rplbase
> -+    lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> -+    lib_replace.CONFIG = path
> -+    lafile_replace.match = $$rplbase
> -+    lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
> -+}
> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> + lib_replace.CONFIG = path
> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
>   
>   unix|win32-g++* {
>      CONFIG += create_pc
> --   QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> +    QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>  -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> -+   host_build: \
> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
> -+   else: \
> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
>  +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>      QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>      QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
>   }
>   
>   unix {
> ++   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> ++   lafile_replace.replace = ""
> ++   lafile_replace.CONFIG = path
>      CONFIG += create_libtool explicitlib
>      QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
>  -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> -+   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
> ++   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>   }
>   
>   unix|win32-g++* {
> --- 
> -1.8.5.2
> -
Jacob Kroon - Jan. 18, 2014, 12:13 p.m.
On Sat, 18 Jan 2014, Martin Jansa wrote:

> On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
>> Hi Andreas and Martin,
>>
>> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>>
>>>
>>> On Mon, 13 Jan 2014, Martin Jansa wrote:
>>>
>>>  On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
>>>>> dev-packages.
>>>>> The files references paths in my OE build environment, like so:
>>>>>
>>>>> ...
>>>>> # Libraries that this one depends upon.
>>>>> dependency_libs='-lQt5Gui
>>>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>>> sysroots/wandboard-solo/usr/lib
>>>>> -lQt5Core -lpthread '
>>>>> ...
>>>>> # Directory that this library needs to be installed in:
>>>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
>>>>> sysroots/wandboard-solo/usr'
>>>>> ...
>>>>>
>>>>> I noticed this since my Qt5 autotools project wouldn't link properly when
>>>>> using the SDK, unless I first removed all libQt5*.la files.
>>>>>
>>>>> I'm not quite sure where to look for the problem so any pointers would be
>>>>> appreciated.
>>>>>
>>>>
>>>> Probably bad rebase on my side, please compare
>>>>
>>>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
>>>>
>>>> changed in:
>>>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
>>>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
>>>> and
>>>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
>>>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>>>>
>>>> Or better in meta-qt5's qtbase repo:
>>>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
>>>> features/qt_module.prf
>>>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
>>>> features/qt_module.prf
>>>>
>>>>
>>> I tried building Qt 5.1.1 from master again, the .la-files do look better,
>>> "libdir" looks correct (taken from libQt5Svg.la):
>>>
>>> <snip>
>>>
>>> # Directory that this library needs to be installed in:
>>> libdir='/usr/lib'
>>> </snip>
>>>
>>> however
>>>
>>> <snip>
>>>
>>> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
>>> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
>>> -lpthread '
>>> </snip>
>>>
>>> Dunno wether this is a problem or not, I never tried building the project
>>> with 5.1.1 using the SDK.
>>>
>>> Will hopefully have some time tomorrow to look at the links you sent.
>>>
>>> Thanks,
>>>
>>> Jacob
>>>
>>
>> I'm trying to get the .la-files for Qt5 dev-packages correct.
>>
>> What I've come up with so far is attached in the patch (to be applied in
>> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
>>
>> With the patch applied I can still build both an image and an SDK, and also
>> the resulting SDK can be used to build my QT5 autotools projects. But I get
>> these warnings when building for instance "qtxmlpatterns":
>>
>> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
>> include and/or library paths were used.
>
> This warning is the reason why I've originally created this patch, so
> something is definitely wrong in new version.

I got rid of this warning by adding the "-L/usr/lib" -> "" substitution 
for the .prl file aswell. But it's an ugly hack I guess..

> I know it's very confusing .prf (and last upstream changes didn't make
> it any easier), I'll try to look at it this weekend.
>
> It would be great to prepare some nice reproducer which we can use in
> upstream gerrit to show that this really doesn't work well in more
> complicated case (like our cross-compile with "sstate-relocateable"
> .prl,.la,.pc files, where we really don't want to include host paths).
>
> Do you have something like smaller test case or were you testing it on
> "big" qtbase build?
>

Unfortunately no, I did all testing on the big 
qtbase-native/qtbase/nativesdk-qtbase packages (pats my poor laptop 
harddrive). Do you have an idea of where to start for creating such a test 
case ? Something like a recipe that uses qtbase but only builds qmake + a 
minimal Qt module ?

>> With my patch applied,
>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
>> like this:
>>
>> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
>> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> @@ -135,30 +135,36 @@ load(qt_installs)
>>      rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>>  else: \
>>      rplbase = $$MODULE_BASE_OUTDIR
>> -include_replace.match = $$rplbase/include
>> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>> -include_replace.CONFIG = path
>> +pkgconfig_include_replace.match = $$rplbase/include
>> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
>> +pkgconfig_include_replace.CONFIG = path
>> +pkgconfig_lib_replace.match = $$rplbase/lib
>> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
>> +pkgconfig_lib_replace.CONFIG = path
>>  lib_replace.match = $$rplbase/lib
>>  host_build: \
>>      lib_replace.replace = $$[QT_HOST_LIBS]
>>  else: \
>>      lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
>>  lib_replace.CONFIG = path
>> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
>>
>>  unix|win32-g++* {
>>     CONFIG += create_pc
>>     QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>> -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
>> +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>>     QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>>     QMAKE_PKGCONFIG_DESTDIR = pkgconfig
>> -   QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
>> +   QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
>> pkgconfig_lib_replace
>>  }
>>
>>  unix {
>> +   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
>> +   lafile_replace.replace = ""
>> +   lafile_replace.CONFIG = path
>>     CONFIG += create_libtool explicitlib
>>     QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
>> -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
>> +   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>>  }
>>
>> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
>> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
>> ? With all the sed:ing going on, that path looks phony to me...
>>
>> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
>> QMAKE_PRL_BUILD_DIR =
>> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
>> QMAKE_PRL_LIBS =
>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
>> -lQt5Core -lpthread
>>
>> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
>> dependency_libs=' -lQt5Core -lpthread '
>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
>>
>> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
>> QMAKE_PRL_BUILD_DIR =
>> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
>> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
>>
>> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
>> dependency_libs=' -lQt5Core -lpthread '
>> libdir='/usr/lib'
>>
>>   -- Jacob (very confused)
>
>> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> index f85fb33..5503e1a 100644
>> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
>> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
>>   mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
>>   1 file changed, 31 insertions(+), 12 deletions(-)
>>
>> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
>> -index 11509ee..2f95684 100644
>> ---- a/mkspecs/features/qt_module.prf
>> -+++ b/mkspecs/features/qt_module.prf
>> -@@ -135,30 +135,49 @@ load(qt_installs)
>> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> +===================================================================
>> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
>> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
>> +@@ -135,30 +135,36 @@ load(qt_installs)
>>       rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
>>   else: \
>>       rplbase = $$MODULE_BASE_OUTDIR
>>  -include_replace.match = $$rplbase/include
>>  -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>>  -include_replace.CONFIG = path
>> --lib_replace.match = $$rplbase/lib
>> --host_build: \
>> --    lib_replace.replace = $$[QT_HOST_LIBS]
>> --else: \
>>  +pkgconfig_include_replace.match = $$rplbase/include
>>  +pkgconfig_include_replace.replace = "\$$\\{includedir}"
>> ++pkgconfig_include_replace.CONFIG = path
>>  +pkgconfig_lib_replace.match = $$rplbase/lib
>>  +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
>> -+!exists($$[QT_SYSROOT]) {
>> -+    include_replace.match = $$rplbase/include
>> -+    include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
>> -+    include_replace.CONFIG = path
>> -+    lib_replace.match = $$rplbase/lib
>> ++pkgconfig_lib_replace.CONFIG = path
>> + lib_replace.match = $$rplbase/lib
>> + host_build: \
>> +     lib_replace.replace = $$[QT_HOST_LIBS]
>> + else: \
>>       lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
>> --lib_replace.CONFIG = path
>> -+    lib_replace.CONFIG = path
>> -+    lafile_replace.match = $$rplbase
>> -+    lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
>> -+} else {
>> -+    # include_replace and lib_replace are duplicate, but we don't want to
>> -+    # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
>> -+    include_replace.match = $$rplbase
>> -+    include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
>> -+    include_replace.CONFIG = path
>> -+    lib_replace.match = $$rplbase
>> -+    lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
>> -+    lib_replace.CONFIG = path
>> -+    lafile_replace.match = $$rplbase
>> -+    lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
>> -+}
>> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> + lib_replace.CONFIG = path
>> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
>> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
>>
>>   unix|win32-g++* {
>>      CONFIG += create_pc
>> --   QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>> +    QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
>>  -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
>> -+   host_build: \
>> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
>> -+   else: \
>> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
>>  +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
>>      QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
>>      QMAKE_PKGCONFIG_DESTDIR = pkgconfig
>> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
>>   }
>>
>>   unix {
>> ++   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
>> ++   lafile_replace.replace = ""
>> ++   lafile_replace.CONFIG = path
>>      CONFIG += create_libtool explicitlib
>>      QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
>>  -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
>> -+   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
>> ++   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
>>   }
>>
>>   unix|win32-g++* {
>> ---
>> -1.8.5.2
>> -
>
>
> -- 
> Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com
>
Martin Jansa - Jan. 18, 2014, 1:31 p.m.
On Sat, Jan 18, 2014 at 01:13:48PM +0100, Jacob Kroon wrote:
> 
> On Sat, 18 Jan 2014, Martin Jansa wrote:
> 
> > On Sat, Jan 18, 2014 at 11:03:09AM +0100, Jacob Kroon wrote:
> >> Hi Andreas and Martin,
> >>
> >> On Tue, Jan 14, 2014 at 1:03 AM, Jacob Kroon <jacob.kroon@gmail.com> wrote:
> >>
> >>>
> >>> On Mon, 13 Jan 2014, Martin Jansa wrote:
> >>>
> >>>  On Mon, Jan 13, 2014 at 01:58:25AM +0100, Jacob Kroon wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I'm seeing what I believe is a problem with the *.la files in the Qt5
> >>>>> dev-packages.
> >>>>> The files references paths in my OE build environment, like so:
> >>>>>
> >>>>> ...
> >>>>> # Libraries that this one depends upon.
> >>>>> dependency_libs='-lQt5Gui
> >>>>> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>>>> sysroots/wandboard-solo/usr/lib
> >>>>> -lQt5Core -lpthread '
> >>>>> ...
> >>>>> # Directory that this library needs to be installed in:
> >>>>> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/
> >>>>> sysroots/wandboard-solo/usr'
> >>>>> ...
> >>>>>
> >>>>> I noticed this since my Qt5 autotools project wouldn't link properly when
> >>>>> using the SDK, unless I first removed all libQt5*.la files.
> >>>>>
> >>>>> I'm not quite sure where to look for the problem so any pointers would be
> >>>>> appreciated.
> >>>>>
> >>>>
> >>>> Probably bad rebase on my side, please compare
> >>>>
> >>>> mkspecs/features/qt_module.prf in 5.1.1 and 5.2.0
> >>>>
> >>>> changed in:
> >>>> https://github.com/meta-qt5/meta-qt5/blob/master/recipes-
> >>>> qt/qt5/qtbase-5.1.1/0008-qt_module-Fix-pkgconfig-replacement.patch
> >>>> and
> >>>> https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.2.0/
> >>>> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >>>>
> >>>> Or better in meta-qt5's qtbase repo:
> >>>> https://github.com/meta-qt5/qtbase/blob/b5.1.1/mkspecs/
> >>>> features/qt_module.prf
> >>>> https://github.com/meta-qt5/qtbase/blob/b5.2.0/mkspecs/
> >>>> features/qt_module.prf
> >>>>
> >>>>
> >>> I tried building Qt 5.1.1 from master again, the .la-files do look better,
> >>> "libdir" looks correct (taken from libQt5Svg.la):
> >>>
> >>> <snip>
> >>>
> >>> # Directory that this library needs to be installed in:
> >>> libdir='/usr/lib'
> >>> </snip>
> >>>
> >>> however
> >>>
> >>> <snip>
> >>>
> >>> dependency_libs='-lQt5Gui -L/home/jkroon/Projects/oe-
> >>> devel/build/tmp-eglibc/sysroots/wandboard-solo/usr/lib -lQt5Core
> >>> -lpthread '
> >>> </snip>
> >>>
> >>> Dunno wether this is a problem or not, I never tried building the project
> >>> with 5.1.1 using the SDK.
> >>>
> >>> Will hopefully have some time tomorrow to look at the links you sent.
> >>>
> >>> Thanks,
> >>>
> >>> Jacob
> >>>
> >>
> >> I'm trying to get the .la-files for Qt5 dev-packages correct.
> >>
> >> What I've come up with so far is attached in the patch (to be applied in
> >> top of "jansa-qt5-5.2.0", b8a236df79c25802c1f2eb2525e8a534e73e608e)
> >>
> >> With the patch applied I can still build both an image and an SDK, and also
> >> the resulting SDK can be used to build my QT5 autotools projects. But I get
> >> these warnings when building for instance "qtxmlpatterns":
> >>
> >> WARNING: QA Issue: qtxmlpatterns: The compile log indicates that host
> >> include and/or library paths were used.
> >
> > This warning is the reason why I've originally created this patch, so
> > something is definitely wrong in new version.
> 
> I got rid of this warning by adding the "-L/usr/lib" -> "" substitution 
> for the .prl file aswell. But it's an ugly hack I guess..
> 
> > I know it's very confusing .prf (and last upstream changes didn't make
> > it any easier), I'll try to look at it this weekend.
> >
> > It would be great to prepare some nice reproducer which we can use in
> > upstream gerrit to show that this really doesn't work well in more
> > complicated case (like our cross-compile with "sstate-relocateable"
> > .prl,.la,.pc files, where we really don't want to include host paths).
> >
> > Do you have something like smaller test case or were you testing it on
> > "big" qtbase build?
> >
> 
> Unfortunately no, I did all testing on the big 
> qtbase-native/qtbase/nativesdk-qtbase packages (pats my poor laptop 
> harddrive). Do you have an idea of where to start for creating such a test 
> case ? Something like a recipe that uses qtbase but only builds qmake + a 
> minimal Qt module ?

Not really, back then I was also using whole qtbase build (regenerating
Makefile with qmake and .prf edited manually, checking the replacements
in Makefile until they looked sane and then rebuilding qtbase-native/qtbase
from scratch for final test).

> >> With my patch applied,
> >> recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch looks
> >> like this:
> >>
> >> --- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> >> +++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> @@ -135,30 +135,36 @@ load(qt_installs)
> >>      rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> >>  else: \
> >>      rplbase = $$MODULE_BASE_OUTDIR
> >> -include_replace.match = $$rplbase/include
> >> -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >> -include_replace.CONFIG = path
> >> +pkgconfig_include_replace.match = $$rplbase/include
> >> +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> >> +pkgconfig_include_replace.CONFIG = path
> >> +pkgconfig_lib_replace.match = $$rplbase/lib
> >> +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> >> +pkgconfig_lib_replace.CONFIG = path
> >>  lib_replace.match = $$rplbase/lib
> >>  host_build: \
> >>      lib_replace.replace = $$[QT_HOST_LIBS]
> >>  else: \
> >>      lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> >>  lib_replace.CONFIG = path
> >> -QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> +QMAKE_PRL_INSTALL_REPLACE += lib_replace
> >>
> >>  unix|win32-g++* {
> >>     CONFIG += create_pc
> >>     QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >> -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> >> +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> >>     QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> >>     QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> >> -   QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
> >> +   QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
> >> pkgconfig_lib_replace
> >>  }
> >>
> >>  unix {
> >> +   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> >> +   lafile_replace.replace = ""
> >> +   lafile_replace.CONFIG = path
> >>     CONFIG += create_libtool explicitlib
> >>     QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> >> -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> >> +   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> >>  }
> >>
> >> The lafile_replace does the substitution "-L/usr/lib" -> "". Maybe this is
> >> needed for the .prl-files aswell ? Is the QMAKE_PRL_BUILD_DIR needed at all
> >> ? With all the sed:ing going on, that path looks phony to me...
> >>
> >> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.prl":
> >> QMAKE_PRL_BUILD_DIR =
> >> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/x86_64-linux/qtbase-native/5.2.0-r0/build/src/xml
> >> QMAKE_PRL_LIBS =
> >> -L/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
> >> -lQt5Core -lpthread
> >>
> >> From native "sysroots/x86_64-linux/usr/lib/libQt5Xml.la":
> >> dependency_libs=' -lQt5Core -lpthread '
> >> libdir='/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib'
> >>
> >> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.prl":
> >> QMAKE_PRL_BUILD_DIR =
> >> /home/jkroon/Projects/oe-devel/build/tmp-eglibc/work/cortexa9hf-vfp-neon-mx6-oe-linux-gnueabi/qtbase/5.2.0-r0/build/src/xml
> >> QMAKE_PRL_LIBS = -L/usr/lib -lQt5Core -lpthread
> >>
> >> From target "sysroots/wandboard-solo/usr/lib/libQt5Xml.la":
> >> dependency_libs=' -lQt5Core -lpthread '
> >> libdir='/usr/lib'
> >>
> >>   -- Jacob (very confused)
> >
> >> diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> index f85fb33..5503e1a 100644
> >> --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> >> @@ -46,57 +46,36 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
> >>   mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
> >>   1 file changed, 31 insertions(+), 12 deletions(-)
> >>
> >> -diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
> >> -index 11509ee..2f95684 100644
> >> ---- a/mkspecs/features/qt_module.prf
> >> -+++ b/mkspecs/features/qt_module.prf
> >> -@@ -135,30 +135,49 @@ load(qt_installs)
> >> +Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> +===================================================================
> >> +--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
> >> ++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
> >> +@@ -135,30 +135,36 @@ load(qt_installs)
> >>       rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
> >>   else: \
> >>       rplbase = $$MODULE_BASE_OUTDIR
> >>  -include_replace.match = $$rplbase/include
> >>  -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >>  -include_replace.CONFIG = path
> >> --lib_replace.match = $$rplbase/lib
> >> --host_build: \
> >> --    lib_replace.replace = $$[QT_HOST_LIBS]
> >> --else: \
> >>  +pkgconfig_include_replace.match = $$rplbase/include
> >>  +pkgconfig_include_replace.replace = "\$$\\{includedir}"
> >> ++pkgconfig_include_replace.CONFIG = path
> >>  +pkgconfig_lib_replace.match = $$rplbase/lib
> >>  +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
> >> -+!exists($$[QT_SYSROOT]) {
> >> -+    include_replace.match = $$rplbase/include
> >> -+    include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
> >> -+    include_replace.CONFIG = path
> >> -+    lib_replace.match = $$rplbase/lib
> >> ++pkgconfig_lib_replace.CONFIG = path
> >> + lib_replace.match = $$rplbase/lib
> >> + host_build: \
> >> +     lib_replace.replace = $$[QT_HOST_LIBS]
> >> + else: \
> >>       lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
> >> --lib_replace.CONFIG = path
> >> -+    lib_replace.CONFIG = path
> >> -+    lafile_replace.match = $$rplbase
> >> -+    lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
> >> -+} else {
> >> -+    # include_replace and lib_replace are duplicate, but we don't want to
> >> -+    # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
> >> -+    include_replace.match = $$rplbase
> >> -+    include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> >> -+    include_replace.CONFIG = path
> >> -+    lib_replace.match = $$rplbase
> >> -+    lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
> >> -+    lib_replace.CONFIG = path
> >> -+    lafile_replace.match = $$rplbase
> >> -+    lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
> >> -+}
> >> - QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> + lib_replace.CONFIG = path
> >> +-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
> >> ++QMAKE_PRL_INSTALL_REPLACE += lib_replace
> >>
> >>   unix|win32-g++* {
> >>      CONFIG += create_pc
> >> --   QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >> +    QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
> >>  -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
> >> -+   host_build: \
> >> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
> >> -+   else: \
> >> -+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
> >>  +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
> >>      QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
> >>      QMAKE_PKGCONFIG_DESTDIR = pkgconfig
> >> @@ -105,13 +84,13 @@ index 11509ee..2f95684 100644
> >>   }
> >>
> >>   unix {
> >> ++   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
> >> ++   lafile_replace.replace = ""
> >> ++   lafile_replace.CONFIG = path
> >>      CONFIG += create_libtool explicitlib
> >>      QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
> >>  -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
> >> -+   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
> >> ++   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
> >>   }
> >>
> >>   unix|win32-g++* {
> >> ---
> >> -1.8.5.2
> >> -
> >
> >
> > -- 
> > Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com
> >

Patch

diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
index f85fb33..5503e1a 100644
--- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
+++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
@@ -46,57 +46,36 @@  Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
  mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
  1 file changed, 31 insertions(+), 12 deletions(-)
 
-diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
-index 11509ee..2f95684 100644
---- a/mkspecs/features/qt_module.prf
-+++ b/mkspecs/features/qt_module.prf
-@@ -135,30 +135,49 @@ load(qt_installs)
+Index: qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+===================================================================
+--- qtbase-opensource-src-5.2.0.orig/mkspecs/features/qt_module.prf
++++ qtbase-opensource-src-5.2.0/mkspecs/features/qt_module.prf
+@@ -135,30 +135,36 @@ load(qt_installs)
      rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
  else: \
      rplbase = $$MODULE_BASE_OUTDIR
 -include_replace.match = $$rplbase/include
 -include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
 -include_replace.CONFIG = path
--lib_replace.match = $$rplbase/lib
--host_build: \
--    lib_replace.replace = $$[QT_HOST_LIBS]
--else: \
 +pkgconfig_include_replace.match = $$rplbase/include
 +pkgconfig_include_replace.replace = "\$$\\{includedir}"
++pkgconfig_include_replace.CONFIG = path
 +pkgconfig_lib_replace.match = $$rplbase/lib
 +pkgconfig_lib_replace.replace = "\$$\\{libdir}"
-+!exists($$[QT_SYSROOT]) {
-+    include_replace.match = $$rplbase/include
-+    include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
-+    include_replace.CONFIG = path
-+    lib_replace.match = $$rplbase/lib
++pkgconfig_lib_replace.CONFIG = path
+ lib_replace.match = $$rplbase/lib
+ host_build: \
+     lib_replace.replace = $$[QT_HOST_LIBS]
+ else: \
      lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
--lib_replace.CONFIG = path
-+    lib_replace.CONFIG = path
-+    lafile_replace.match = $$rplbase
-+    lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
-+} else {
-+    # include_replace and lib_replace are duplicate, but we don't want to
-+    # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
-+    include_replace.match = $$rplbase
-+    include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+    include_replace.CONFIG = path
-+    lib_replace.match = $$rplbase
-+    lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
-+    lib_replace.CONFIG = path
-+    lafile_replace.match = $$rplbase
-+    lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
-+}
- QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
+ lib_replace.CONFIG = path
+-QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
++QMAKE_PRL_INSTALL_REPLACE += lib_replace
  
  unix|win32-g++* {
     CONFIG += create_pc
--   QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
+    QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
 -   QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
-+   host_build: \
-+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
-+   else: \
-+       QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
 +   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
     QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
     QMAKE_PKGCONFIG_DESTDIR = pkgconfig
@@ -105,13 +84,13 @@  index 11509ee..2f95684 100644
  }
  
  unix {
++   lafile_replace.match = "-L$$[QT_INSTALL_LIBS/raw]"
++   lafile_replace.replace = ""
++   lafile_replace.CONFIG = path
     CONFIG += create_libtool explicitlib
     QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
 -   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
-+   QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
++   QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace lafile_replace
  }
  
  unix|win32-g++* {
--- 
-1.8.5.2
-