<p dir="ltr">Whats the motivation here. This looks like a backdoor for bsps. To user it will make inconsistent behaviour. Even now its quite hard to root cause errors due to siteinfo</p>
<p dir="ltr">On Jul 22, 2016 7:26 AM, &quot;Richard Purdie&quot; &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt; wrote:<br>
&gt;<br>
&gt; In order to add a new architecture or sub-architecture to OE, you currently<br>
&gt; need to tweak the table in siteinfo.bbclass. This adds a mechanism so this<br>
&gt; can be done from a BSP layer. It needs a function definition which needs<br>
&gt; a class file but can then be done with something like:<br>
&gt;<br>
&gt; def rp_testfunc2(archinfo, osinfo, targetinfo, d):<br>
&gt;     archinfo[&#39;testarch&#39;] = &quot;little-endian bit-32&quot;<br>
&gt;     osinfo[&#39;testos&#39;] = &quot;common-linux&quot;<br>
&gt;     targetinfo[&#39;mymach-linux&#39;] = &quot;mymach-linux-common&quot;<br>
&gt;<br>
&gt;     return archinfo, osinfo, targetinfo<br>
&gt;<br>
&gt; SITEINFO_EXTRA_DATAFUNCS = &quot;rp_testfunc2&quot;<br>
&gt;<br>
&gt; [YOCTO #8554]<br>
&gt;<br>
&gt; Signed-off-by: Richard Purdie &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt;<br>
&gt;<br>
&gt; diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass<br>
&gt; index 50141a3..3c9ab2a 100644<br>
&gt; --- a/meta/classes/siteinfo.bbclass<br>
&gt; +++ b/meta/classes/siteinfo.bbclass<br>
&gt; @@ -107,6 +107,14 @@ def siteinfo_data(d):<br>
&gt;          &quot;x86_64-mingw32&quot;: &quot;bit-64&quot;,<br>
&gt;      }<br>
&gt;<br>
&gt; +    # Add in any extra user supplied data which may come from a BSP layer, removing the<br>
&gt; +    # need to always change this class directly<br>
&gt; +    extra_siteinfo = (d.getVar(&quot;SITEINFO_EXTRA_DATAFUNCS&quot;, True) or &quot;&quot;).split()<br>
&gt; +    for m in extra_siteinfo:<br>
&gt; +        call = m + &quot;(archinfo, osinfo, targetinfo, d)&quot;<br>
&gt; +        locs = { &quot;archinfo&quot; : archinfo, &quot;osinfo&quot; : osinfo, &quot;targetinfo&quot; : targetinfo, &quot;d&quot; : d}<br>
&gt; +        archinfo, osinfo, targetinfo = bb.utils.better_eval(call, locs)<br>
&gt; +<br>
&gt;      hostarch = d.getVar(&quot;HOST_ARCH&quot;, True)<br>
&gt;      hostos = d.getVar(&quot;HOST_OS&quot;, True)<br>
&gt;      target = &quot;%s-%s&quot; % (hostarch, hostos)<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; _______________________________________________<br>
&gt; Openembedded-core mailing list<br>
&gt; <a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a><br>
&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br></p>