<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 16, 2016 at 5:19 PM, Joe Konno <span dir="ltr"><<a href="mailto:joe.konno@linux.intel.com" target="_blank">joe.konno@linux.intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, 16 Sep 2016 10:53:32 +0300<br>
Pekka Paalanen <<a href="mailto:ppaalanen@gmail.com">ppaalanen@gmail.com</a>> wrote:<br>
<br>
> On Thu, 15 Sep 2016 15:22:12 -0700<br>
> Joe Konno <<a href="mailto:joe.konno@linux.intel.com">joe.konno@linux.intel.com</a>> wrote:<br>
><br>
> > From: Joe Konno <<a href="mailto:joe.konno@intel.com">joe.konno@intel.com</a>><br>
> ><br>
> > In a cross-compilation environment with packages depending on<br>
> > wayland-scanner, ensure the path to wayland-scanner is correct. Without<br>
> > this patch, the path will _not_ point to the target environment but to<br>
> > the host's, potentially leading to breakage.<br>
> ><br>
> > <a href="https://bugs.freedesktop.org/show_bug.cgi?id=97828" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>show_bug.cgi?id=97828</a><br>
> ><br>
> > Signed-off-by: Joe Konno <<a href="mailto:joe.konno@intel.com">joe.konno@intel.com</a>><br>
> > ---<br>
> >  src/<a href="http://wayland-scanner.pc.in" rel="noreferrer" target="_blank">wayland-scanner.pc.in</a> | 2 +-<br>
> >  1 file changed, 1 insertion(+), 1 deletion(-)<br>
> ><br>
> > diff --git a/src/<a href="http://wayland-scanner.pc.in" rel="noreferrer" target="_blank">wayland-scanner.pc.in</a> b/src/<a href="http://wayland-scanner.pc.in" rel="noreferrer" target="_blank">wayland-scanner.pc.in</a><br>
> > index 7b2a4c92e0e3..ec11a0bc982c 100644<br>
> > --- a/src/<a href="http://wayland-scanner.pc.in" rel="noreferrer" target="_blank">wayland-scanner.pc.in</a><br>
> > +++ b/src/<a href="http://wayland-scanner.pc.in" rel="noreferrer" target="_blank">wayland-scanner.pc.in</a><br>
> > @@ -2,7 +2,7 @@ prefix=@prefix@<br>
> >  exec_prefix=@exec_prefix@<br>
> >  datarootdir=@datarootdir@<br>
> >  pkgdatadir=@datadir@/@PACKAGE@<br>
> > -wayland_scanner=@bindir@/<wbr>wayland-scanner<br>
> > +wayland_scanner=${pc_<wbr>sysrootdir}/@bindir@/wayland-<wbr>scanner<br>
> ><br>
> >  Name: Wayland Scanner<br>
> >  Description: Wayland scanner<br>
><br>
> Hi,<br>
><br>
> ok, so pc_sysrootdir points to the sysroot. I would just like to<br>
> confirm that this really does what you intend. wayland-scanner is a<br>
> build tool to be run on the host. Such tools get installed into the<br>
> sysroot even when compiled for the host, not the target, yes?<br>
><br>
> I read both <a href="http://dev.gentoo.org/~mgorny/pkg-config-spec.html" rel="noreferrer" target="_blank">http://dev.gentoo.org/~mgorny/<wbr>pkg-config-spec.html</a> and<br>
> <a href="https://autotools.io/pkgconfig/cross-compiling.html" rel="noreferrer" target="_blank">https://autotools.io/<wbr>pkgconfig/cross-compiling.html</a> but couldn't<br>
> actually understand what is going on, perhaps because I never<br>
> cross-compile.<br>
><br>
> Hence I cannot offer a Reviewed-by, but I can offer:<br>
> Acked-by: Pekka Paalanen <<a href="mailto:pekka.paalanen@collabora.co.uk">pekka.paalanen@collabora.co.<wbr>uk</a>><br>
><br>
> (Not for the 1.12.0 release.)<br>
><br>
> Are you using binary-compatible arches for both host and target? I'd<br>
> like to see a test on a setup where the binaries are completely<br>
> incompatible so that the host != target difference is obvious.<br>
<br>
</div></div>I'm struggling with this particular cross-compilation scenario as well, as<br>
there's a fair bit of wonky overhead involved in the build process I'm dealing<br>
with. Figured I'd introduce the patch and solicit feedback early while I<br>
continue digging.<br>
<br>
Your points are fair and the feedback's appreciated. I'll see about testing<br>
this out a bit more with an incompatible binary target-- right now my host is<br>
Intel-based and my target is also Intel-based.<br>
<br>
I'll reply back once I feel convinced one way or the other. ^_^<br></blockquote><div><br></div><div>Hi Joe,</div><div><br></div><div>I believe your patch is not right, as pq says the sysroot normally contains the code compiled for the target, which might not be compatible with the host.</div><div><br></div><div>I think the proper way to do this is to compile wayland for the host separately, and use ${CHOST}-pkg-config instead of pkg-config to get the wayland-scanner path. In practice you would call x86_64-linux-gnu-pkg-config --variable=wayland_scanner. The x86_64-linux-gnu-pkg-config utility will look for pkgconfig files in the host sysroot, instead of the target sysroot, allowing this use case to work.</div><div><br></div><div>Unfortunately not many packages do this correctly...</div><div><br></div><div>Regards,</div><div>Arnaud</div></div>
</div></div>