<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TipsAndTricks%2FUnderstanding_what_changed_%28diffsigs_etc%29</id>
	<title>TipsAndTricks/Understanding what changed (diffsigs etc) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TipsAndTricks%2FUnderstanding_what_changed_%28diffsigs_etc%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;action=history"/>
	<updated>2026-04-14T16:20:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=23919&amp;oldid=prev</id>
		<title>Joshua Lock: Add to do items before this article is ready</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=23919&amp;oldid=prev"/>
		<updated>2017-02-15T12:10:20Z</updated>

		<summary type="html">&lt;p&gt;Add to do items before this article is ready&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:10, 15 February 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Armed with this knowledge we were then able to look at the class where oe_multilib_header is defined and see that indeed, the &amp;#039;&amp;#039;oe_multilib_header&amp;#039;&amp;#039; function does reference &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039;. Furthermore there&amp;#039;s already a -native override of the function which simply returns with a comment noting that this prevents architecture specific variables affecting the sstate signature of -native recipes. The fix then for this changing sstate signature was to replicate the empty function override for -nativesdk recipes too.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Armed with this knowledge we were then able to look at the class where oe_multilib_header is defined and see that indeed, the &amp;#039;&amp;#039;oe_multilib_header&amp;#039;&amp;#039; function does reference &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039;. Furthermore there&amp;#039;s already a -native override of the function which simply returns with a comment noting that this prevents architecture specific variables affecting the sstate signature of -native recipes. The fix then for this changing sstate signature was to replicate the empty function override for -nativesdk recipes too.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== TODO ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* clean up &amp;amp; edit&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* talk about the common &quot;ERROR: Taskhash mismatch dc3543e66b52acc379ec340f0c3f7703 verses 581ae57e28e43d6c41e72240a2c01f04 for ...&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joshua Lock</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=20467&amp;oldid=prev</id>
		<title>Joshua Lock: use -S to dump signatures</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=20467&amp;oldid=prev"/>
		<updated>2016-09-30T13:45:54Z</updated>

		<summary type="html">&lt;p&gt;use -S to dump signatures&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:45, 30 September 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Signature data was generated for the differing signatures with:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Signature data was generated for the differing signatures with:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  $ MACHINE=qemux86-64 bitbake nativesdk-glibc-initial&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  $ MACHINE=qemux86-64 bitbake &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-S none &lt;/ins&gt;nativesdk-glibc-initial&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  $ MACHINE=qemumips64 bitbake nativesdk-glibc-initial&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  $ MACHINE=qemumips64 bitbake &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-S none &lt;/ins&gt;nativesdk-glibc-initial&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I then used ls on the stamps directory to see which tasks were rerun, and pick the  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I then used ls on the stamps directory to see which tasks were rerun, and pick the  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joshua Lock</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=20464&amp;oldid=prev</id>
		<title>Joshua Lock: First draft of a tips &amp; tricks discussing bitbake-diffsigs and bitbake-dumpsig</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=TipsAndTricks/Understanding_what_changed_(diffsigs_etc)&amp;diff=20464&amp;oldid=prev"/>
		<updated>2016-09-30T13:17:26Z</updated>

		<summary type="html">&lt;p&gt;First draft of a tips &amp;amp; tricks discussing bitbake-diffsigs and bitbake-dumpsig&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;shared state checksum changes can result in tasks being re-run when one would expect the existing sstate objects to be used. BitBake provides several tools for debugging these scenarios to learn what&amp;#039;s different between the signatures of tasks.&lt;br /&gt;
&lt;br /&gt;
A recent example from OE-core was that the signature of some nativesdk tasks was changing when changing target &amp;#039;&amp;#039;MACHINE&amp;#039;&amp;#039; [https://bugzilla.yoctoproject.org/show_bug.cgi?id=10320 YOCTO #10320], this was narrowed down to happening when switching between a MIPS machine and any other.&lt;br /&gt;
&lt;br /&gt;
Signature data was generated for the differing signatures with:&lt;br /&gt;
 $ MACHINE=qemux86-64 bitbake nativesdk-glibc-initial&lt;br /&gt;
 $ MACHINE=qemumips64 bitbake nativesdk-glibc-initial&lt;br /&gt;
&lt;br /&gt;
I then used ls on the stamps directory to see which tasks were rerun, and pick the &lt;br /&gt;
&lt;br /&gt;
 $ ls tmp/stamps/x86_64-nativesdk-pokysdk-linux/nativesdk-glibc-initial/*.sigdata.*&lt;br /&gt;
&lt;br /&gt;
I can see that the there are two sets of signature data (sigdata) for several tasks, including the &amp;#039;&amp;#039;do_install&amp;#039;&amp;#039; task (2.24-r0.do_install.sigdata.[CHECKSUM]).&lt;br /&gt;
&lt;br /&gt;
Now that I&amp;#039;ve identified an early task which has a different signature and therefore invalidates sstate object reuse I can use &amp;lt;tt&amp;gt;bitbake-diffsigs&amp;lt;/tt&amp;gt; to compare the signature files for the two different task invocation. &amp;lt;tt&amp;gt;bitbake-diffsigs&amp;lt;/tt&amp;gt; can be invoked with specific sigdata files passed as arguments, but I&amp;#039;ll instead invoke it with the recipename and taskname and let the tool determine the two most recent signatures to compare:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake-diffsigs -t nativesdk-glibc-initial do_install&lt;br /&gt;
basehash changed from 18d262a7dd0189dfa8df63a7915417db to 5ef4c25ef31eece9f00f5a670a092182&lt;br /&gt;
Variable MIPSPKGSFX_ABI value changed from &amp;#039;None&amp;#039; to &amp;#039;${@bb.utils.contains(&amp;#039;TUNE_FEATURES&amp;#039;, &amp;#039;n32&amp;#039;, &amp;#039;-n32&amp;#039;, &amp;#039;&amp;#039;, d)}&lt;br /&gt;
TUNE_FEATURES{n32} = Unset&amp;#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we can see that the variable &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039; is changing between the two different task signatures. This is a Mips specific variable which only affects target recipes, why is it changing for nativesdk recipes?&lt;br /&gt;
&lt;br /&gt;
To answer that question we can use another tool, &amp;lt;tt&amp;gt;bitbake-dumpsigs&amp;lt;/tt&amp;gt;, to look at the inputs affecting the signature and how &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039; is used. Often context is very useful when looking at &amp;lt;tt&amp;gt;bitbake-dumpsigs&amp;lt;/tt&amp;gt; output so it&amp;#039;s recommended to pipe the output through a pager which supports searching:&lt;br /&gt;
&lt;br /&gt;
 $ bitbake-dumpsig tmp/stamps/x86_64-nativesdk-pokysdk-linux/nativesdk-glibc-initial/2.24-r0.do_install.sigdata.b127a5b3176daffc0fb90391370b6844 | less&lt;br /&gt;
&lt;br /&gt;
Alternatively we might even just pipe the output through grep for the variable. In this instance that&amp;#039;s enough to give us a lead, though the relevant item is a little obscured in the output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ bitbake-dumpsig tmp/stamps/x86_64-nativesdk-pokysdk-linux/nativesdk-glibc-initial/2.24-r0.do_install.sigdata.b127a5b3176daffc0fb90391370b6844 | grep MIPSPKGSFX_ABI&lt;br /&gt;
Task dependencies: [&amp;#039;ACLOCALDIR&amp;#039;, &amp;#039;AR&amp;#039;, &amp;#039;AS&amp;#039;, &amp;#039;ASNEEDED&amp;#039;, &amp;#039;B&amp;#039;, &amp;#039;BUILDSDK_CFLAGS&amp;#039;, &amp;#039;BUILDSDK_CPPFLAGS&amp;#039;, &amp;#039;BUILDSDK_LDFLAGS&amp;#039;, &amp;#039;BUILD_AR&amp;#039;, &amp;#039;BUILD_AS&amp;#039;, &amp;#039;BUILD_AS_ARCH&amp;#039;, &amp;#039;BUILD_CC&amp;#039;, &amp;#039;BUILD_CCLD&amp;#039;, &amp;#039;BUILD_CC_ARCH&amp;#039;, &amp;#039;BUILD_CFLAGS&amp;#039;, &amp;#039;BUILD_CPP&amp;#039;, &amp;#039;BUILD_CPPFLAGS&amp;#039;, &amp;#039;BUILD_CXX&amp;#039;, &amp;#039;BUILD_CXXFLAGS&amp;#039;, &amp;#039;BUILD_FC&amp;#039;, &amp;#039;BUILD_LD&amp;#039;, &amp;#039;BUILD_LDFLAGS&amp;#039;, &amp;#039;BUILD_LD_ARCH&amp;#039;, &amp;#039;BUILD_NM&amp;#039;, &amp;#039;BUILD_OPTIMIZATION&amp;#039;, &amp;#039;BUILD_OS&amp;#039;, &amp;#039;BUILD_PREFIX&amp;#039;, &amp;#039;BUILD_RANLIB&amp;#039;, &amp;#039;BUILD_STRIP&amp;#039;, &amp;#039;BUILD_SYS&amp;#039;, &amp;#039;BUILD_VENDOR&amp;#039;, &amp;#039;CC&amp;#039;, &amp;#039;CCLD&amp;#039;, &amp;#039;CC_FOR_BUILD&amp;#039;, &amp;#039;CFLAGS&amp;#039;, &amp;#039;CFLAGS_FOR_BUILD&amp;#039;, &amp;#039;CONFIG_SITE&amp;#039;, &amp;#039;CPP&amp;#039;, &amp;#039;CPPFLAGS&amp;#039;, &amp;#039;CPPFLAGS_FOR_BUILD&amp;#039;, &amp;#039;CPP_FOR_BUILD&amp;#039;, &amp;#039;CXX&amp;#039;, &amp;#039;CXXFLAGS&amp;#039;, &amp;#039;CXXFLAGS_FOR_BUILD&amp;#039;, &amp;#039;CXX_FOR_BUILD&amp;#039;, &amp;#039;D&amp;#039;, &amp;#039;DEBUG_BUILD&amp;#039;, &amp;#039;DEBUG_FLAGS&amp;#039;, &amp;#039;DEBUG_OPTIMIZATION&amp;#039;, &amp;#039;DEBUG_PREFIX_MAP&amp;#039;, &amp;#039;DISTRO&amp;#039;, &amp;#039;EXTENDPE&amp;#039;, &amp;#039;EXTRA_OEMAKE&amp;#039;, &amp;#039;FC&amp;#039;, &amp;#039;FULL_OPTIMIZATION&amp;#039;, &amp;#039;HOST_ARCH&amp;#039;, &amp;#039;HOST_AS_ARCH&amp;#039;, &amp;#039;HOST_CC_ARCH&amp;#039;, &amp;#039;HOST_LD_ARCH&amp;#039;, &amp;#039;HOST_OS&amp;#039;, &amp;#039;HOST_PREFIX&amp;#039;, &amp;#039;INIT_D_DIR&amp;#039;, &amp;#039;LC_ALL&amp;#039;, &amp;#039;LD&amp;#039;, &amp;#039;LDFLAGS&amp;#039;, &amp;#039;LDFLAGS_FOR_BUILD&amp;#039;, &amp;#039;LD_FOR_BUILD&amp;#039;, &amp;#039;LINKER_HASH_STYLE&amp;#039;, &amp;#039;LOGFIFO&amp;#039;, &amp;#039;MAKE&amp;#039;, &amp;#039;MIPSPKGSFX_ABI&amp;#039;, &amp;#039;NM&amp;#039;, &amp;#039;OBJCOPY&amp;#039;, &amp;#039;OBJDUMP&amp;#039;, &amp;#039;PE&amp;#039;, &amp;#039;PKG_CONFIG_DIR&amp;#039;, &amp;#039;PKG_CONFIG_DISABLE_UNINSTALLED&amp;#039;, &amp;#039;PKG_CONFIG_LIBDIR&amp;#039;, &amp;#039;PKG_CONFIG_PATH&amp;#039;, &amp;#039;PKG_CONFIG_SYSROOT_DIR&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_INCLUDE_PATH&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_LIBRARY_PATH&amp;#039;, &amp;#039;PN&amp;#039;, &amp;#039;PR&amp;#039;, &amp;#039;PSEUDO_DISABLED&amp;#039;, &amp;#039;PV&amp;#039;, &amp;#039;RANLIB&amp;#039;, &amp;#039;READELF&amp;#039;, &amp;#039;S&amp;#039;, &amp;#039;SDKPATH&amp;#039;, &amp;#039;SDKPATHNATIVE&amp;#039;, &amp;#039;SDK_ARCH&amp;#039;, &amp;#039;SDK_AS_ARCH&amp;#039;, &amp;#039;SDK_CC_ARCH&amp;#039;, &amp;#039;SDK_LD_ARCH&amp;#039;, &amp;#039;SDK_OS&amp;#039;, &amp;#039;SDK_PREFIX&amp;#039;, &amp;#039;SDK_SYS&amp;#039;, &amp;#039;SDK_VENDOR&amp;#039;, &amp;#039;SDK_VERSION&amp;#039;, &amp;#039;SELECTED_OPTIMIZATION&amp;#039;, &amp;#039;SITEINFO_BITS&amp;#039;, &amp;#039;SITEINFO_EXTRA_DATAFUNCS&amp;#039;, &amp;#039;STAGING_BASE_LIBDIR_NATIVE&amp;#039;, &amp;#039;STAGING_DATADIR&amp;#039;, &amp;#039;STAGING_DIR&amp;#039;, &amp;#039;STAGING_DIR_NATIVE&amp;#039;, &amp;#039;STAGING_DIR_TCBOOTSTRAP&amp;#039;, &amp;#039;STAGING_INCDIR_NATIVE&amp;#039;, &amp;#039;STAGING_LIBDIR_NATIVE&amp;#039;, &amp;#039;STRINGS&amp;#039;, &amp;#039;STRIP&amp;#039;, &amp;#039;T&amp;#039;, &amp;#039;TARGET_ARCH&amp;#039;, &amp;#039;TARGET_CFLAGS&amp;#039;, &amp;#039;TARGET_CPPFLAGS&amp;#039;, &amp;#039;TARGET_CXXFLAGS&amp;#039;, &amp;#039;TARGET_LDFLAGS&amp;#039;, &amp;#039;TARGET_LINK_HASH_STYLE&amp;#039;, &amp;#039;TARGET_OS&amp;#039;, &amp;#039;TARGET_SYS&amp;#039;, &amp;#039;TARGET_VENDOR&amp;#039;, &amp;#039;TOOLCHAIN_OPTIONS&amp;#039;, &amp;#039;USE_LDCONFIG&amp;#039;, &amp;#039;USRBINPATH&amp;#039;, &amp;#039;base_bindir&amp;#039;, &amp;#039;base_libdir&amp;#039;, &amp;#039;base_libdir_native&amp;#039;, &amp;#039;base_prefix&amp;#039;, &amp;#039;base_sbindir&amp;#039;, &amp;#039;baselib&amp;#039;, &amp;#039;bberror&amp;#039;, &amp;#039;bbfatal_log&amp;#039;, &amp;#039;bbnote&amp;#039;, &amp;#039;bindir&amp;#039;, &amp;#039;datadir&amp;#039;, &amp;#039;die&amp;#039;, &amp;#039;do_install[fakeroot]&amp;#039;, &amp;#039;do_install[umask]&amp;#039;, &amp;#039;docdir&amp;#039;, &amp;#039;exec_prefix&amp;#039;, &amp;#039;ident&amp;#039;, &amp;#039;includedir&amp;#039;, &amp;#039;includedir_native&amp;#039;, &amp;#039;infodir&amp;#039;, &amp;#039;libdir&amp;#039;, &amp;#039;libdir_native&amp;#039;, &amp;#039;libexecdir&amp;#039;, &amp;#039;localstatedir&amp;#039;, &amp;#039;lt_cv_sys_lib_dlsearch_path_spec&amp;#039;, &amp;#039;mandir&amp;#039;, &amp;#039;nonarch_base_libdir&amp;#039;, &amp;#039;nonarch_libdir&amp;#039;, &amp;#039;oe_multilib_header&amp;#039;, &amp;#039;oe_runmake&amp;#039;, &amp;#039;oe_runmake_call&amp;#039;, &amp;#039;oldincludedir&amp;#039;, &amp;#039;prefix&amp;#039;, &amp;#039;prefix_native&amp;#039;, &amp;#039;prefix_nativesdk&amp;#039;, &amp;#039;rm_systemd_unitdir&amp;#039;, &amp;#039;rm_sysvinit_initddir&amp;#039;, &amp;#039;sbindir&amp;#039;, &amp;#039;servicedir&amp;#039;, &amp;#039;sharedstatedir&amp;#039;, &amp;#039;siteinfo_data&amp;#039;, &amp;#039;siteinfo_get_files&amp;#039;, &amp;#039;stem&amp;#039;, &amp;#039;sysconfdir&amp;#039;, &amp;#039;systemd_system_unitdir&amp;#039;, &amp;#039;systemd_unitdir&amp;#039;, &amp;#039;systemd_user_unitdir&amp;#039;]&lt;br /&gt;
List of dependencies for variable oe_multilib_header is {&amp;#039;CPP&amp;#039;, &amp;#039;PSEUDO_DISABLED&amp;#039;, &amp;#039;LDFLAGS_FOR_BUILD&amp;#039;, &amp;#039;BUILD_AR&amp;#039;, &amp;#039;OBJDUMP&amp;#039;, &amp;#039;CFLAGS&amp;#039;, &amp;#039;SITEINFO_BITS&amp;#039;, &amp;#039;BUILD_CPPFLAGS&amp;#039;, &amp;#039;HOST_OS&amp;#039;, &amp;#039;infodir&amp;#039;, &amp;#039;LD_FOR_BUILD&amp;#039;, &amp;#039;systemd_unitdir&amp;#039;, &amp;#039;CXX_FOR_BUILD&amp;#039;, &amp;#039;libdir&amp;#039;, &amp;#039;RANLIB&amp;#039;, &amp;#039;datadir&amp;#039;, &amp;#039;nonarch_base_libdir&amp;#039;, &amp;#039;D&amp;#039;, &amp;#039;CPPFLAGS&amp;#039;, &amp;#039;docdir&amp;#039;, &amp;#039;base_prefix&amp;#039;, &amp;#039;base_sbindir&amp;#039;, &amp;#039;PKG_CONFIG_DISABLE_UNINSTALLED&amp;#039;, &amp;#039;OBJCOPY&amp;#039;, &amp;#039;CCLD&amp;#039;, &amp;#039;LD&amp;#039;, &amp;#039;BUILD_LDFLAGS&amp;#039;, &amp;#039;PKG_CONFIG_LIBDIR&amp;#039;, &amp;#039;servicedir&amp;#039;, &amp;#039;TARGET_CPPFLAGS&amp;#039;, &amp;#039;BUILD_STRIP&amp;#039;, &amp;#039;CPP_FOR_BUILD&amp;#039;, &amp;#039;TARGET_CFLAGS&amp;#039;, &amp;#039;includedir&amp;#039;, &amp;#039;lt_cv_sys_lib_dlsearch_path_spec&amp;#039;, &amp;#039;LDFLAGS&amp;#039;, &amp;#039;AR&amp;#039;, &amp;#039;CXXFLAGS&amp;#039;, &amp;#039;BUILD_CXXFLAGS&amp;#039;, &amp;#039;BUILD_FC&amp;#039;, &amp;#039;READELF&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_INCLUDE_PATH&amp;#039;, &amp;#039;sharedstatedir&amp;#039;, &amp;#039;TARGET_ARCH&amp;#039;, &amp;#039;bindir&amp;#039;, &amp;#039;systemd_user_unitdir&amp;#039;, &amp;#039;PKG_CONFIG_DIR&amp;#039;, &amp;#039;CXXFLAGS_FOR_BUILD&amp;#039;, &amp;#039;FC&amp;#039;, &amp;#039;CONFIG_SITE&amp;#039;, &amp;#039;BUILD_NM&amp;#039;, &amp;#039;STRINGS&amp;#039;, &amp;#039;BUILD_CCLD&amp;#039;, &amp;#039;exec_prefix&amp;#039;, &amp;#039;libexecdir&amp;#039;, &amp;#039;AS&amp;#039;, &amp;#039;sbindir&amp;#039;, &amp;#039;CFLAGS_FOR_BUILD&amp;#039;, &amp;#039;BUILD_LD&amp;#039;, &amp;#039;CC&amp;#039;, &amp;#039;localstatedir&amp;#039;, &amp;#039;CXX&amp;#039;, &amp;#039;STRIP&amp;#039;, &amp;#039;stem&amp;#039;, &amp;#039;bberror&amp;#039;, &amp;#039;nonarch_libdir&amp;#039;, &amp;#039;NM&amp;#039;, &amp;#039;BUILD_RANLIB&amp;#039;, &amp;#039;systemd_system_unitdir&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_LIBRARY_PATH&amp;#039;, &amp;#039;PKG_CONFIG_SYSROOT_DIR&amp;#039;, &amp;#039;CC_FOR_BUILD&amp;#039;, &amp;#039;TARGET_CXXFLAGS&amp;#039;, &amp;#039;base_libdir&amp;#039;, &amp;#039;BUILD_CXX&amp;#039;, &amp;#039;CPPFLAGS_FOR_BUILD&amp;#039;, &amp;#039;oldincludedir&amp;#039;, &amp;#039;BUILD_AS&amp;#039;, &amp;#039;prefix&amp;#039;, &amp;#039;sysconfdir&amp;#039;, &amp;#039;mandir&amp;#039;, &amp;#039;PKG_CONFIG_PATH&amp;#039;, &amp;#039;BUILD_CC&amp;#039;, &amp;#039;ident&amp;#039;, &amp;#039;MAKE&amp;#039;, &amp;#039;TARGET_LDFLAGS&amp;#039;, &amp;#039;LC_ALL&amp;#039;, &amp;#039;BUILD_CPP&amp;#039;, &amp;#039;BUILD_CFLAGS&amp;#039;, &amp;#039;base_bindir&amp;#039;, &amp;#039;MIPSPKGSFX_ABI&amp;#039;}&lt;br /&gt;
List of dependencies for variable MIPSPKGSFX_ABI is set()&lt;br /&gt;
        mips*)  case &amp;quot;${MIPSPKGSFX_ABI}&amp;quot; in&lt;br /&gt;
Variable MIPSPKGSFX_ABI value is ${@bb.utils.contains(&amp;#039;TUNE_FEATURES&amp;#039;, &amp;#039;n32&amp;#039;, &amp;#039;-n32&amp;#039;, &amp;#039;&amp;#039;, d)}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We see that the &amp;#039;&amp;#039;oe_multilib_header&amp;#039;&amp;#039; variable (a function provided by &amp;#039;&amp;#039;multilib_header.bbclass&amp;#039;&amp;#039;) depends on the &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039; variable. Here&amp;#039;s the relevant part of the &amp;lt;tt&amp;gt;bitbake-dumpsig&amp;lt;/tt&amp;gt; output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;List of dependencies for variable oe_multilib_header is {&amp;#039;CPP&amp;#039;, &amp;#039;PSEUDO_DISABLED&amp;#039;, &amp;#039;LDFLAGS_FOR_BUILD&amp;#039;, &amp;#039;BUILD_AR&amp;#039;, &amp;#039;OBJDUMP&amp;#039;, &amp;#039;CFLAGS&amp;#039;, &amp;#039;SITEINFO_BITS&amp;#039;, &amp;#039;BUILD_CPPFLAGS&amp;#039;, &amp;#039;HOST_OS&amp;#039;, &amp;#039;infodir&amp;#039;, &amp;#039;LD_FOR_BUILD&amp;#039;, &amp;#039;systemd_unitdir&amp;#039;, &amp;#039;CXX_FOR_BUILD&amp;#039;, &amp;#039;libdir&amp;#039;, &amp;#039;RANLIB&amp;#039;, &amp;#039;datadir&amp;#039;, &amp;#039;nonarch_base_libdir&amp;#039;, &amp;#039;D&amp;#039;, &amp;#039;CPPFLAGS&amp;#039;, &amp;#039;docdir&amp;#039;, &amp;#039;base_prefix&amp;#039;, &amp;#039;base_sbindir&amp;#039;, &amp;#039;PKG_CONFIG_DISABLE_UNINSTALLED&amp;#039;, &amp;#039;OBJCOPY&amp;#039;, &amp;#039;CCLD&amp;#039;, &amp;#039;LD&amp;#039;, &amp;#039;BUILD_LDFLAGS&amp;#039;, &amp;#039;PKG_CONFIG_LIBDIR&amp;#039;, &amp;#039;servicedir&amp;#039;, &amp;#039;TARGET_CPPFLAGS&amp;#039;, &amp;#039;BUILD_STRIP&amp;#039;, &amp;#039;CPP_FOR_BUILD&amp;#039;, &amp;#039;TARGET_CFLAGS&amp;#039;, &amp;#039;includedir&amp;#039;, &amp;#039;lt_cv_sys_lib_dlsearch_path_spec&amp;#039;, &amp;#039;LDFLAGS&amp;#039;, &amp;#039;AR&amp;#039;, &amp;#039;CXXFLAGS&amp;#039;, &amp;#039;BUILD_CXXFLAGS&amp;#039;, &amp;#039;BUILD_FC&amp;#039;, &amp;#039;READELF&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_INCLUDE_PATH&amp;#039;, &amp;#039;sharedstatedir&amp;#039;, &amp;#039;TARGET_ARCH&amp;#039;, &amp;#039;bindir&amp;#039;, &amp;#039;systemd_user_unitdir&amp;#039;, &amp;#039;PKG_CONFIG_DIR&amp;#039;, &amp;#039;CXXFLAGS_FOR_BUILD&amp;#039;, &amp;#039;FC&amp;#039;, &amp;#039;CONFIG_SITE&amp;#039;, &amp;#039;BUILD_NM&amp;#039;, &amp;#039;STRINGS&amp;#039;, &amp;#039;BUILD_CCLD&amp;#039;, &amp;#039;exec_prefix&amp;#039;, &amp;#039;libexecdir&amp;#039;, &amp;#039;AS&amp;#039;, &amp;#039;sbindir&amp;#039;, &amp;#039;CFLAGS_FOR_BUILD&amp;#039;, &amp;#039;BUILD_LD&amp;#039;, &amp;#039;CC&amp;#039;, &amp;#039;localstatedir&amp;#039;, &amp;#039;CXX&amp;#039;, &amp;#039;STRIP&amp;#039;, &amp;#039;stem&amp;#039;, &amp;#039;bberror&amp;#039;, &amp;#039;nonarch_libdir&amp;#039;, &amp;#039;NM&amp;#039;, &amp;#039;BUILD_RANLIB&amp;#039;, &amp;#039;systemd_system_unitdir&amp;#039;, &amp;#039;PKG_CONFIG_SYSTEM_LIBRARY_PATH&amp;#039;, &amp;#039;PKG_CONFIG_SYSROOT_DIR&amp;#039;, &amp;#039;CC_FOR_BUILD&amp;#039;, &amp;#039;TARGET_CXXFLAGS&amp;#039;, &amp;#039;base_libdir&amp;#039;, &amp;#039;BUILD_CXX&amp;#039;, &amp;#039;CPPFLAGS_FOR_BUILD&amp;#039;, &amp;#039;oldincludedir&amp;#039;, &amp;#039;BUILD_AS&amp;#039;, &amp;#039;prefix&amp;#039;, &amp;#039;sysconfdir&amp;#039;, &amp;#039;mandir&amp;#039;, &amp;#039;PKG_CONFIG_PATH&amp;#039;, &amp;#039;BUILD_CC&amp;#039;, &amp;#039;ident&amp;#039;, &amp;#039;MAKE&amp;#039;, &amp;#039;TARGET_LDFLAGS&amp;#039;, &amp;#039;LC_ALL&amp;#039;, &amp;#039;BUILD_CPP&amp;#039;, &amp;#039;BUILD_CFLAGS&amp;#039;, &amp;#039;base_bindir&amp;#039;, &amp;#039;MIPSPKGSFX_ABI&amp;#039;}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Armed with this knowledge we were then able to look at the class where oe_multilib_header is defined and see that indeed, the &amp;#039;&amp;#039;oe_multilib_header&amp;#039;&amp;#039; function does reference &amp;#039;&amp;#039;MIPSPKGSFX_ABI&amp;#039;&amp;#039;. Furthermore there&amp;#039;s already a -native override of the function which simply returns with a comment noting that this prevents architecture specific variables affecting the sstate signature of -native recipes. The fix then for this changing sstate signature was to replicate the empty function override for -nativesdk recipes too.&lt;/div&gt;</summary>
		<author><name>Joshua Lock</name></author>
	</entry>
</feed>