[LLVMdev] How to compile a linux module into .bc file using clang or llvm command?

15102925731 zhenkaixd at 126.com
Wed Apr 11 18:25:25 PDT 2012


Yeah, but I tried that command and error message was generated:

hellomodule.c:1:10: fatal error: 'linux/init.h' file not found
#include <linux/init.h>
         ^
1 error generated.

how to solve this problem??

Thanks!


--

            祝好!
 
  甄凯
------------------------------------------------------------------------------------------------------
2012-04-12
------------------------------------------------------------------------------------------------------
Name: 甄凯(ZhenKai)
Homepage:http://www.renren.com/262729393
Email: zhenkaixd at 126.com or 846227103 at qq.com
TEL: 15810729006(Beijing)
Address: Room I-406, Central Building, Tsinghua University, Beijing, China. 100084.

At 2012-04-11 23:48:07,"John Criswell" <criswell at illinois.edu> wrote:
On 4/10/12 10:11 PM, 15102925731 wrote:
It's actually is .c file.
I just want firstly to compile helloworldmodule.c into helloworldmodule.bc.
Then I run a LLVM pass on it to do some optimization, and then I compile the modified .bc file into .ko file.

 So, could you tell me how to compile helloworldmodule.c into helloworldmodule.bc? I think it's not the same command "clang -O3 -emit-llvm hello.c -c -o hello.bc". Because it is a device driver that will be at last compiled to be .ko file.


No, that's exactly how you would do it, although you might need to use GCC + Dragonegg instead of clang because the Linux 3.0 kernel doesn't compile with Clang out-of-the-box (at least for me, anyway).

-- John T.



Thank you!


--

            祝好!
 
  甄凯
------------------------------------------------------------------------------------------------------
2012-04-11
------------------------------------------------------------------------------------------------------
Name: 甄凯(ZhenKai)
Homepage:http://www.renren.com/262729393
Email: zhenkaixd at 126.com or 846227103 at qq.com
TEL: 15810729006(Beijing)
Address: Room I-406, Central Building, Tsinghua University, Beijing, China. 100084.

在 2012-04-11 09:56:21,"Justin Holewinski" <justin.holewinski at gmail.com> 写道:


2012/4/10 15102925731 <zhenkaixd at 126.com>

 Hi, my friends


I know there is a difference between compiling a linux module and a simple helloworld programme.
If I compile a helloworld.c file, the command is
"clang -O3 -emit-llvm hello.c -c -o hello.bc"
But what the command should be if I want to compile a linux module into a .bc file? (I know it may be an easy question to you guys, but I really don't know where to find the answer on llvm.org.)



What do you mean by linux module?  A shared library (.so)? A kernel module (.ko)?
 

Thank you!





--

            祝好!
 
  甄凯
------------------------------------------------------------------------------------------------------
2012-04-11
------------------------------------------------------------------------------------------------------
Name: 甄凯(ZhenKai)
Homepage:http://www.renren.com/262729393
Email: zhenkaixd at 126.com or 846227103 at qq.com
TEL: 15810729006(Beijing)
Address: Room I-406, Central Building, Tsinghua University, Beijing, China. 100084.



_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev







--


Thanks,


Justin Holewinski







_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.eduhttp://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120412/b1ac1a66/attachment.html>


More information about the llvm-dev mailing list