Thanks Jonathan,<div><br></div><div>I will try again tomorrow. I encountered more problem when building the user space library... I will take a close look and take notes later.</div><div><br></div><div>Alfred</div><div><br>
</div><div><br><br><div class="gmail_quote">On Thu, Feb 16, 2012 at 7:25 PM, Jonathan Herman <span dir="ltr"><<a href="mailto:hermanjl@cs.unc.edu">hermanjl@cs.unc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Alfred,<div><br></div><div>An immediate fix is to use the config provided by the web page to get around this issue:</div><div> wget <a href="http://www.litmus-rt.org/releases/2012.1/x86_64-config" target="_blank">http://www.litmus-rt.org/releases/2012.1/x86_64-config</a> && mv x86_64-config .config</div>
<div>And rebuild:</div><div> make bzImage</div><div><br></div><div>Tomorrow a fix for the issue you encountered will be up on the web page. Thanks for noticing this,</div><div>it revealed a serious issue with one of the configuration options. </div>
<div><br><div class="gmail_quote"><div><div class="h5">On Thu, Feb 16, 2012 at 6:10 PM, Alfred Zhong <span dir="ltr"><<a href="mailto:alfchung02@gmail.com" target="_blank">alfchung02@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi dear Litmus RT developers,<div><br></div><div>Question Summary:</div><div>I tried to build Litmus RT following this tutorial</div><div><a href="https://wiki.litmus-rt.org/litmus/InstallationInstructions" target="_blank">https://wiki.litmus-rt.org/litmus/InstallationInstructions</a></div>
<div><br></div><div> I encountered an compiling error after typing, I found a hack to get around it and built the kernel successfully. However, I would like to know the standard way to do it.</div><div><br></div><div><br>
</div><div><br></div><div>Here is the detail:</div><div><br></div><div>At the stage of </div><div>$ make bzImage</div><div><br></div><div>I got this error</div><div><div>litmus/sched_plugin.c:85:4: error: implicit declaration of function ‘request_exit_np_atomic’ [-Werror=implicit-function-declaration]</div>
<div>cc1: some warnings being treated as errors</div></div><div><br></div><div>So I search where this function is declared</div><div>$ grep -r "request_exit_np_atomic" *</div><div><br></div><div>and found</div>
<div>
include/litmus/litmus.h:inline int request_exit_np_atomic(struct task_struct *t)</div><div><br></div><div>then I discovered that this declaration in litmus.h is inside </div><div>#ifdef CONFIG_NP_SECTION</div><div>...</div>
<div>#else</div><div>...</div><div><br></div><div>and I search for CONFIG_NP_SECTION and found it is not defined anywhere, so the function 'request_exit_np_atomic' is never declared. </div><div><br></div><div>then I added </div>
<div>#define CONFIG_NP_SECTION</div><div>before </div><div>#include <litmus/litmus.h> in sched_plugin.c</div><div><br></div><div>Then I got another error.</div><div><div>include/litmus/litmus.h: In function ‘is_kernel_np’:</div>
<div>include/litmus/litmus.h:135:18: error: ‘struct rt_param’ has no member named ‘kernel_np’</div><div>include/litmus/litmus.h: In function ‘make_np’:</div><div>include/litmus/litmus.h:157:11: error: ‘struct rt_param’ has no member named ‘kernel_np’</div>
<div>include/litmus/litmus.h: In function ‘take_np’:</div><div>include/litmus/litmus.h:165:20: error: ‘struct rt_param’ has no member named ‘kernel_np’</div><div>In file included from litmus/sched_plugin.c:16:0:</div><div>
include/litmus/sched_plugin.h: At top level:</div><div>include/litmus/sched_plugin.h:59:6: warning: ‘struct litmus_lock’ declared inside parameter list [enabled by default]</div><div>include/litmus/sched_plugin.h:59:6: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]</div>
<div>litmus/sched_plugin.c: In function ‘is_kernel_np’:</div><div>include/litmus/litmus.h:136:1: warning: control reaches end of non-void function [-Wreturn-type]</div><div>make[1]: *** [litmus/sched_plugin.o] Error 1</div>
<div>make: *** [litmus] Error 2</div></div><div><br></div><div>And here is my hack to get around. I copied the whole function of 'request_exit_np' to the beginning of sched_plugin.c, and this time it builds the whole kernel successfully.</div>
<div><br></div><div>I am wondering if there is anything else I need to configure that the tutorial doesn't mention to make this go in a standard way?</div><div><br></div><div><br></div><div>Thanks!</div><div>Alfred</div>
<font color="#888888">
<div><br></div>
</font><br></div></div>_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org" target="_blank">litmus-dev@lists.litmus-rt.org</a><br>
<a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a><br>
<br></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Jonathan Herman<br>Department of Computer Science at UNC Chapel Hill<br>
</font></span></div>
<br>_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org">litmus-dev@lists.litmus-rt.org</a><br>
<a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a><br>
<br></blockquote></div><br></div>