On 5 December 2016 at 21:08, Khem Raj <[email protected]> wrote: > > On Dec 5, 2016, at 5:20 AM, Jussi Kukkonen <[email protected]> > wrote: > > > > On 1 December 2016 at 10:37, Khem Raj <[email protected]> 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 <[email protected]> >> --- >> .../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/gstrea >> mer/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-v >> oaacenc,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 <[email protected]> >> +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 <[email protected]> >> +--- >> + 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... Jussi
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
