[OE-core] [PATCH] classes/meson.bbclass: Explicitly mark functions as missing in MinGW

Joshua Watt jpewhacker at gmail.com
Thu Feb 20 22:50:49 UTC 2020


On Thu, Feb 20, 2020 at 2:44 PM Joshua Watt <jpewhacker at gmail.com> wrote:
>
>
>
> On Thu, Feb 20, 2020, 1:30 PM Khem Raj <raj.khem at gmail.com> wrote:
>>
>>
>>
>> On 2/20/20 10:51 AM, Joshua Watt wrote:
>> > meson (with some help from GCC) misdetects certain builtin functions as
>> > being present on MinGW, when in fact they are not. Fix it by explicitly
>> > marking the functions as missing. This requires rearranging the
>> > meson.cross file to put the [properties] section at the end so the
>> > append works properly (meson can't handle duplicate sections).
>> >
>>
>> patch is fine workaround, but I think meson should look for strndup in
>> string.h
>
>
> Agreed. I think the upstream fix would be better, and I will look at that also.

Fixed in http://lists.openembedded.org/pipermail/openembedded-core/2020-February/293233.html
if that is preferable.

>
>>
>> > Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
>> > ---
>> >   meta/classes/meson.bbclass | 25 +++++++++++++++++--------
>> >   1 file changed, 17 insertions(+), 8 deletions(-)
>> >
>> > diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
>> > index 06034e8b47..5c74658d01 100644
>> > --- a/meta/classes/meson.bbclass
>> > +++ b/meta/classes/meson.bbclass
>> > @@ -96,14 +96,6 @@ readelf = ${@meson_array('READELF', d)}
>> >   pkgconfig = 'pkg-config'
>> >   llvm-config = 'llvm-config${LLVMVERSION}'
>> >
>> > -[properties]
>> > -needs_exe_wrapper = true
>> > -c_args = ${@meson_array('CFLAGS', d)}
>> > -c_link_args = ${@meson_array('LDFLAGS', d)}
>> > -cpp_args = ${@meson_array('CXXFLAGS', d)}
>> > -cpp_link_args = ${@meson_array('LDFLAGS', d)}
>> > -gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
>> > -
>> >   [host_machine]
>> >   system = '${@meson_operating_system('HOST_OS', d)}'
>> >   cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
>> > @@ -115,6 +107,23 @@ system = '${@meson_operating_system('TARGET_OS', d)}'
>> >   cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
>> >   cpu = '${TARGET_ARCH}'
>> >   endian = '${@meson_endian('TARGET', d)}'
>> > +
>> > +[properties]
>> > +needs_exe_wrapper = true
>> > +c_args = ${@meson_array('CFLAGS', d)}
>> > +c_link_args = ${@meson_array('LDFLAGS', d)}
>> > +cpp_args = ${@meson_array('CXXFLAGS', d)}
>> > +cpp_link_args = ${@meson_array('LDFLAGS', d)}
>> > +gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
>> > +EOF
>> > +}
>> > +
>> > +do_write_config_append_mingw32() {
>> > +    # meson mis-detects the presence of several builtin functions in MinGW
>> > +    # (see https://github.com/mesonbuild/meson/issues/3672).
>> > +    # Explicitly mark these functions as missing in the cross file
>> > +    cat >>${WORKDIR}/meson.cross <<EOF
>> > +has_function_strndup = false
>> >   EOF
>> >   }
>> >
>> >
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list