<div dir="ltr"><br><br>On 24 May 2017 at 16:39, Emil Velikov <<a href="mailto:emil.l.velikov@gmail.com">emil.l.velikov@gmail.com</a>> wrote:<br>><br>> Hi Jussi,<br>><br>> On 23 May 2017 at 09:13, Jussi Kukkonen <<a href="mailto:jussi.kukkonen@intel.com">jussi.kukkonen@intel.com</a>> wrote:<br>> > Modify wayland-scanner lookup: Use the path given by pkg-config<br>> > but offer an option to override the path with<br>> > "--with-wayland-scanner-path=PATH". The latter is useful for<br>> > cross-compile situations.<br>> ><br>> > AC_PATH_PROG is no longer used (if the scanner is installed it should<br>> > get found by pkg-config). AC_SUBST is added so the output variable is<br>> > created when only the configure option is used.<br>> > ---<br>> ><br>> > My goal is to standardize wayland-scanner usage in a way that does not<br>> > require patching when cross-compiling in Yocto (the detailed issue is<br>> > that in Yocto pkg-config will return a "wayland_scanner" variable but<br>> > that will contain a _target path_ when we would like to use a native<br>> > sysroot path instead).<br>> ><br>> > I've sent a similar patch to weston and intend to fix other projects<br>> > if these two patches are well received.<br>> ><br>> I might have misread something, but on a quick look the patch does not<br>> look quite right. Stepping aside for a moment,<br>><br>> Can you explain clearly what's happening/wrong in the whole scenario?<br>>  - Yocto does has A stage where it does X.<br>>  - Then it proceeds to B... at which point $file<br>> foo/wayland-scanner.pc gets picked<br>>  - That results in an error due to variable containing $bar, due to<br>> the $step above<br><br>Hi Emil, <div><div><br></div><div>I'm hoping this is a coherent enough explanation of the issue...</div></div><div><br></div><div>When yocto cross-compiles mesa for target, we already have <div>  a) All dependency headers and libraries in a target sysroot<br><div>  b) Native wayland-scanner in a native sysroot</div><div><br></div><div>The problem as I see it is that there is no way to express the _native_ sysroot in pkg-config: PKG_CONFIG_SYSROOT_DIR and pc_sysroot_dir logically refer to the target sysroot. So when mesa configure does "<span style="font-size:12.8px">pkg-config --variable=wayland_scanner wayland-scanner" it gets a reasonable "/usr/bin/wayland-scanner" response: this would be the correct path to wayland-scanner on _target_. In the best case this fails during compile when the scanner isn't found but unfortunately /usr/bin/wayland-scanner is often also a valid path to _host_ wayland-scanner which might be from a completely different and unrelated wayland version...</span></div><div><div><br></div><div>I could see two options to solve our problem:</div><div>* Use AC_PATH_PROG to find wayland-scanner. Weston currently does this and it works fine for the Yocto case... but I can see how that's not perfect either as it could find an older installed wayland-scanner in other situations</div></div></div><div>* Use something like "--with-wayland-scanner-path=${NATIVE_SYSROOT_BINDIR}/wayland-scanner" when calling mesa configure: this adds a configuration item but is much, much nicer than the current situation where we need to patch <a href="http://configure.ac">configure.ac</a></div><div><br></div><div>Thanks,<br></div><div>  Jussi</div><div><br></div></div></div>