[OE-core] [PATCH] glib-2.0/glib.inc: fix broken mingw build

Bystricky, Juro juro.bystricky at intel.com
Fri Apr 13 20:29:38 UTC 2018


Yes, I do get warnings, but in both cases (skipping the renaming and also if renamed  with MLPREFIX):
WARNING: core-image-minimal-1.0-r0 do_populate_sdk: The postinstall intercept hook 'update_gio_module_cache-nativesdk' failed, details in /data/master-master/poky/build-x86_64-mingw32-sdk-core-image-minimal/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/temp/log.do_populate_sdk

So skipping the renaming will at least give me a correctly named executable in the package.

Are you sure the postinst-intercepts can even work with Windows .exe executables?
If I understand this correctly, you use a qemuwrapper attempting to run Windows executable, and I 
cannot imagine this would work. But maybe I am missing something here.

BTW, I cannot remedy this in the meta-mingw layer via a .bbppend, as the code that needs to
be modified is in do_install_append, so it is not possible (or not easy) to use overrides.


________________________________________
From: Alexander Kanavin [alexander.kanavin at linux.intel.com]
Sent: Friday, April 13, 2018 12:32 PM
To: Bystricky, Juro; openembedded-core at lists.openembedded.org
Cc: richard.purdie at linuxfoundation.org; jurobystricky at hotmail.com
Subject: Re: [PATCH] glib-2.0/glib.inc: fix broken mingw build

On 04/13/2018 05:43 PM, Bystricky, Juro wrote:
>> I think the better approach is to accommodate the exe suffix when doing
>> the move:
>
>> mv -v ${D}${libexecdir}/gio-querymodules${EXEEXT}
>> ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT}
>
> This was actually the first thing I tried. However, I ended up with "nativesdk-gio-querymodules.exe"
> in the mingw tarrball (in my case poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-2.4+snapshot.tar.xz).
> I am not sure what you expect postinst to do for Windows toolchains/SDKs, but I would expect
> "gio-querymodules.exe", as it used to be until recently.

"nativesdk-gio-querymodules.exe" is totally fine. This utility is used
in only one place:
poky/scripts/postinst-intercepts/update_gio_module_cache, to generate
the cache file of gio modules whenever the gio modules are installed or
removed.

That script is called by postinst_intercept mechanism, which is
triggered via meta/classes/gio-module-cache.bbclass every time a package
that inherits that class is installed.

I am fairly sure that with the patch you sent it is not going to work
for the nativesdk mingw case, as the script does prepend the MLPREFIX to
the utility name (to call the correct version among many when multilib
is in use). We would probably need to append the .exe suffix in there as
well though.

Please do try populate_sdk with nativesdk-glib-2.0 included into it and
watch for any warnings about failed postinst_intercepts.

Alex



More information about the Openembedded-core mailing list