<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 20, 2020, 1:30 PM Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 2/20/20 10:51 AM, Joshua Watt wrote:<br>
&gt; meson (with some help from GCC) misdetects certain builtin functions as<br>
&gt; being present on MinGW, when in fact they are not. Fix it by explicitly<br>
&gt; marking the functions as missing. This requires rearranging the<br>
&gt; meson.cross file to put the [properties] section at the end so the<br>
&gt; append works properly (meson can&#39;t handle duplicate sections).<br>
&gt; <br>
<br>
patch is fine workaround, but I think meson should look for strndup in <br>
string.h<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Agreed. I think the upstream fix would be better, and I will look at that also.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; Signed-off-by: Joshua Watt &lt;<a href="mailto:JPEWhacker@gmail.com" target="_blank" rel="noreferrer">JPEWhacker@gmail.com</a>&gt;<br>
&gt; ---<br>
&gt;   meta/classes/meson.bbclass | 25 +++++++++++++++++--------<br>
&gt;   1 file changed, 17 insertions(+), 8 deletions(-)<br>
&gt; <br>
&gt; diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass<br>
&gt; index 06034e8b47..5c74658d01 100644<br>
&gt; --- a/meta/classes/meson.bbclass<br>
&gt; +++ b/meta/classes/meson.bbclass<br>
&gt; @@ -96,14 +96,6 @@ readelf = ${@meson_array(&#39;READELF&#39;, d)}<br>
&gt;   pkgconfig = &#39;pkg-config&#39;<br>
&gt;   llvm-config = &#39;llvm-config${LLVMVERSION}&#39;<br>
&gt;   <br>
&gt; -[properties]<br>
&gt; -needs_exe_wrapper = true<br>
&gt; -c_args = ${@meson_array(&#39;CFLAGS&#39;, d)}<br>
&gt; -c_link_args = ${@meson_array(&#39;LDFLAGS&#39;, d)}<br>
&gt; -cpp_args = ${@meson_array(&#39;CXXFLAGS&#39;, d)}<br>
&gt; -cpp_link_args = ${@meson_array(&#39;LDFLAGS&#39;, d)}<br>
&gt; -gtkdoc_exe_wrapper = &#39;${B}/gtkdoc-qemuwrapper&#39;<br>
&gt; -<br>
&gt;   [host_machine]<br>
&gt;   system = &#39;${@meson_operating_system(&#39;HOST_OS&#39;, d)}&#39;<br>
&gt;   cpu_family = &#39;${@meson_cpu_family(&#39;HOST_ARCH&#39;, d)}&#39;<br>
&gt; @@ -115,6 +107,23 @@ system = &#39;${@meson_operating_system(&#39;TARGET_OS&#39;, d)}&#39;<br>
&gt;   cpu_family = &#39;${@meson_cpu_family(&#39;TARGET_ARCH&#39;, d)}&#39;<br>
&gt;   cpu = &#39;${TARGET_ARCH}&#39;<br>
&gt;   endian = &#39;${@meson_endian(&#39;TARGET&#39;, d)}&#39;<br>
&gt; +<br>
&gt; +[properties]<br>
&gt; +needs_exe_wrapper = true<br>
&gt; +c_args = ${@meson_array(&#39;CFLAGS&#39;, d)}<br>
&gt; +c_link_args = ${@meson_array(&#39;LDFLAGS&#39;, d)}<br>
&gt; +cpp_args = ${@meson_array(&#39;CXXFLAGS&#39;, d)}<br>
&gt; +cpp_link_args = ${@meson_array(&#39;LDFLAGS&#39;, d)}<br>
&gt; +gtkdoc_exe_wrapper = &#39;${B}/gtkdoc-qemuwrapper&#39;<br>
&gt; +EOF<br>
&gt; +}<br>
&gt; +<br>
&gt; +do_write_config_append_mingw32() {<br>
&gt; +    # meson mis-detects the presence of several builtin functions in MinGW<br>
&gt; +    # (see <a href="https://github.com/mesonbuild/meson/issues/3672" rel="noreferrer noreferrer" target="_blank">https://github.com/mesonbuild/meson/issues/3672</a>).<br>
&gt; +    # Explicitly mark these functions as missing in the cross file<br>
&gt; +    cat &gt;&gt;${WORKDIR}/meson.cross &lt;&lt;EOF<br>
&gt; +has_function_strndup = false<br>
&gt;   EOF<br>
&gt;   }<br>
&gt;   <br>
&gt; <br>
-- <br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank" rel="noreferrer">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div></div></div>