<div dir="ltr"><div>Dear Zaheer,</div><div><br></div>Thanks a lot for the reference of cross compiler (though I&#39;ve finished some basic parts of Click), <div>it will be quite useful for my future work. These days, I have some problems on the network drivers.</div><div>I need to leverage polling mode of NICs to improve performance, which is not supported by e1000</div><div>driver? Why?</div><div>And I tried to assign a device to Barrelfish (by QEMU), then the CPU stucks, do you have any similar</div><div>experience on it?</div><div><div><br></div></div><div>Tom</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 2, 2015 at 10:37 PM, Zaheer Chothia <span dir="ltr">&lt;<a href="mailto:zaheer.chothia@gmail.com" target="_blank">zaheer.chothia@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Tom,<br>
<span class=""><br>
&gt; These days, I am considering porting some network applications (like Bro,<br>
&gt; Click, etc.) to Barrelfish. But I don&#39;t know how to start, for example, how<br>
&gt; to write a Hakefile when original Makefile is quite complex? And what<br>
&gt; interfaces should I modify to make them work?<br>
<br>
</span>That sounds interesting and having Click running would be a very useful<br>
contribution.  I suspect the biggest porting challenge would be dealing<br>
with the network stack (currently based on lwIP; can be fragile).<br>
<br>
As a starting point, gather a list of all library functions invoked and<br>
check whether they are available on Barrelfish.  One way of doing this<br>
is to compile natively and inspect the binary:<br>
  $ objdump --syms myexe | grep &#39;UND&#39; | sed &#39;s/.* \(.*\)/\1/&#39; | sort<br>
<br>
As for dealing with external build systems, have a look at [1].  You<br>
can build a full cross-compiler and use it directly with autoconf/CMake<br>
rather than converting everything to Hake.<br>
<br>
Best regards,<br>
<br>
--Zaheer<br>
<br>
[1] <a href="http://wiki.barrelfish.org/CrossCompiler" target="_blank">http://wiki.barrelfish.org/CrossCompiler</a><br>
</blockquote></div><br></div>