<br><br>On Friday, August 17, 2012, Richard Purdie &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt; wrote:<br>&gt; On Thu, 2012-08-16 at 18:13 +0100, Paul Eggleton wrote:<br>
&gt;&gt; On Wednesday 15 August 2012 17:44:33 Paul Eggleton wrote:<br>&gt;&gt; &gt; If chrpath failed here we were just silently ignoring it.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Signed-off-by: Paul Eggleton &lt;<a href="mailto:paul.eggleton@linux.intel.com">paul.eggleton@linux.intel.com</a>&gt;<br>
&gt;&gt; &gt; ---<br>&gt;&gt; &gt;  meta/classes/chrpath.bbclass |    4 +++-<br>&gt;&gt; &gt;  1 file changed, 3 insertions(+), 1 deletion(-)<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; diff --git a/meta/classes/chrpath.bbclass b/meta/classes/chrpath.bbclass<br>
&gt;&gt; &gt; index 10b5ca0..ad61fe0 100644<br>&gt;&gt; &gt; --- a/meta/classes/chrpath.bbclass<br>&gt;&gt; &gt; +++ b/meta/classes/chrpath.bbclass<br>&gt;&gt; &gt; @@ -74,7 +74,9 @@ def process_dir (directory, d):<br>&gt;&gt; &gt;              if len(new_rpaths):<br>
&gt;&gt; &gt;                  args = &quot;:&quot;.join(new_rpaths)<br>&gt;&gt; &gt;                  #bb.note(&quot;Setting rpath for %s to %s&quot; %(fpath, args))<br>&gt;&gt; &gt; -                sub.call([cmd, &#39;-r&#39;, args, fpath])<br>
&gt;&gt; &gt; +                ret = sub.call([cmd, &#39;-r&#39;, args, fpath])<br>&gt;&gt; &gt; +                if ret != 0:<br>&gt;&gt; &gt; +                    bb.error(&quot;chrpath command failed with exit code %d&quot; %<br>
&gt;&gt; &gt; ret)<br>&gt;&gt; &gt;<br>&gt;&gt; &gt;              if perms:<br>&gt;&gt; &gt;                  os.chmod(fpath, perms)<br>&gt;&gt;<br>&gt;&gt; I missed that this does not actually report the output from chrpath when it<br>
&gt;&gt; fails because the task log is suppressed by virtue of calling bb.error. I will<br>&gt;&gt; send a follow-up patch to address this.<br>&gt;&gt;<br>&gt;&gt; Incidentally a couple of users are reporting that they are now seeing failures<br>
&gt;&gt; where the rpath size is reported to be too small to contain the path we are<br>&gt;&gt; applying. I haven&#39;t seen this myself - is there some way we can increase the<br>&gt;&gt; space allowed for storing the path or is there some other issue at work here?<br>
&gt;&gt; I tried to search for some information on how storage of the rpath works but<br>&gt;&gt; did not really find anything conclusive.<br>&gt;<br>&gt; Unfortunately we can&#39;t increase the size available without relinking the<br>
&gt; binary which isn&#39;t feasible at this point. The only way to increase the<br>&gt; size is to run the build in a &quot;deeper&quot; path so that there is more room<br>&gt; in the field. I did some calculations when we originally implemented<br>
&gt; this and concluded you&#39;d have to build somewhere like /tmp to have a<br>&gt; short enough path where this would be a problem.<br>&gt;<br>&gt; I thought we&#39;d added a sanity test for it too but it sounds like either<br>
&gt; we didn&#39;t or if we did, it isn&#39;t functioning properly. Its good that at<br>&gt; least we&#39;re catching the errors now and I&#39;d appreciate more information<br>&gt; about the failing cases.<br>&gt;<br><br>
<br>I think we should just dump chrpath and start using patch elf<br>Which takes care of dynamically increasing path <br><br>&gt; Cheers,<br>&gt;<br>&gt; Richard<br>&gt;<br>&gt;<br>&gt;<br>&gt;