On Wed, Dec 7, 2016 at 4:25 AM, Jussi Kukkonen <jussi.kukko...@intel.com> wrote:
>
>
> On 5 December 2016 at 21:08, Khem Raj <raj.k...@gmail.com> wrote:
>>
>>
>> On Dec 5, 2016, at 5:20 AM, Jussi Kukkonen <jussi.kukko...@intel.com>
>> wrote:
>>
>>
>>
>> On 1 December 2016 at 10:37, Khem Raj <raj.k...@gmail.com> wrote:
>>>
>>> When configure pokes for wayland-protocols isntallations it ended up
>>> using the ones from host, which is because it did not account for sysroot
>>> prefix
>>>
>>> Signed-off-by: Khem Raj <raj.k...@gmail.com>
>>> ---
>>>  .../gstreamer/gstreamer1.0-plugins-bad.inc         |  2 +-
>>>  ...G_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch | 37
>>> ++++++++++++++++++++++
>>>  .../gstreamer/gstreamer1.0-plugins-bad_1.10.1.bb   |  1 +
>>>  3 files changed, 39 insertions(+), 1 deletion(-)
>>>  create mode 100644
>>> meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
>>>
>>> diff --git
>>> a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
>>> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
>>> index d26a6a9..d3c5326 100644
>>> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
>>> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
>>> @@ -64,7 +64,7 @@ PACKAGECONFIG[srtp]            =
>>> "--enable-srtp,--disable-srtp,libsrtp"
>>>  PACKAGECONFIG[uvch264]         =
>>> "--enable-uvch264,--disable-uvch264,libusb1 libgudev"
>>>  PACKAGECONFIG[voaacenc]        =
>>> "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
>>>  PACKAGECONFIG[voamrwbenc]      =
>>> "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
>>> -PACKAGECONFIG[wayland]         =
>>> "--enable-wayland,--disable-wayland,wayland-native wayland"
>>> +PACKAGECONFIG[wayland]         =
>>> "--enable-wayland,--disable-wayland,wayland-native wayland
>>> wayland-protocols"
>>>  PACKAGECONFIG[webp]            = "--enable-webp,--disable-webp,libwebp"
>>>
>>>  # these plugins have not been ported to 1.0 (yet):
>>> diff --git
>>> a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
>>> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
>>> new file mode 100644
>>> index 0000000..eb789df
>>> --- /dev/null
>>> +++
>>> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
>>> @@ -0,0 +1,37 @@
>>> +From c271503d7e233428ac0323c51d6517113e26bef7 Mon Sep 17 00:00:00 2001
>>> +From: Khem Raj <raj.k...@gmail.com>
>>> +Date: Thu, 1 Dec 2016 00:27:13 -0800
>>> +Subject: [PATCH] Prepend PKG_CONFIG_SYSROOT_DIR to pkg-config output
>>> +
>>> +In cross environment we have to prepend the sysroot to the path found by
>>> +pkgconfig since the path returned from pkgconfig does not have sysroot
>>> prefixed
>>> +it ends up using the files from host system. If build host has wayland
>>> installed
>>> +the build will succeed but if you dont have wayland-protocols installed
>>> on build host then
>>> +it wont find the files on build host
>>> +
>>> +This should work ok with non sysrooted builds too since in those cases
>>> PKG_CONFIG_SYSROOT_DIR
>>> +will be empty
>>> +
>>> +Upstream-Status: Pending
>>> +
>>> +Signed-off-by: Khem Raj <raj.k...@gmail.com>
>>> +---
>>> + configure.ac | 2 +-
>>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>>> +
>>> +diff --git a/configure.ac b/configure.ac
>>> +index f8ac96b..dc87b08 100644
>>> +--- a/configure.ac
>>> ++++ b/configure.ac
>>> +@@ -2233,7 +2233,7 @@ AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink],
>>> wayland , [
>>> +     PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, wayland-protocols >= 1.4, [
>>> +       if test "x$wayland_scanner" != "x"; then
>>> +         HAVE_WAYLAND="yes"
>>> +-        AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG
>>> --variable=pkgdatadir wayland-protocols`)
>>> ++        AC_SUBST(WAYLAND_PROTOCOLS_DATADIR,
>>> ${PKG_CONFIG_SYSROOT_DIR}`$PKG_CONFIG --variable=pkgdatadir
>>> wayland-protocols`)
>>
>>
>> I believe this breaks multilib because wayland-protocols is allarch so
>> PKG_CONFIG_SYSROOT_DIR may then be incorrect.
>>
>>
>> Realized my last reply is too terse. expanding on it a bit more.
>> this is not really the case. Since PKG_CONFIG_SYSROOT_DIR is set to
>> STAGING_DIR_HOST which is then set to ${STAGING_DIR}/${MACHINE} so
>> effectively its just
>> reusing an existing var compared to your case where a new redundant
>> variable is introduced.
>>
>> having said that, there could be a multilib issue if pkgdatadir thats in
>> .pc file from wayland-protocols package is using variables like ${libdir}
>> which then are
>> multilib dependent, if this is the case then we need to fix .pc file.
>> however when I look at the
>> <target-sysroot>/usr/share/pkgconfig/wayland-protocols.pc it has
>>
>> prefix=/usr
>> datarootdir=${prefix}/share
>> pkgdatadir=/usr/share/wayland-protocols
>>
>> seems to be free of multilib deps.
>>
>
> It's not about the .pc file, the issue is that if you build
> lib32-gstreamer1.0-plugins-bad WAYLAND_PROTOCOLS_DATADIR will end up as (as
> an example)
>     $TMPDIR/sysroots/lib32-qemux86-64/usr/share/wayland-protocols/
> but that's not where wayland protocols are. The actual path is
>     $TMPDIR/sysroots/qemux86-64/usr/share/wayland-protocols/
>
> Maybe there should be a generic multilib fix for this but I can't figure out
> what it would be...

hmmm is seems to me that 'all' packages should be common between
all syroots, may be symlinks into multilib sysroots for all files could be
a solution, of just staging function for 'all' packages should install it in
both sysroots.

>
> Jussi
>
>
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to