[LLVMdev] How to compile a linux module into .bc file using clang or llvm command?
John Criswell
criswell at illinois.edu
Wed Apr 11 18:31:43 PDT 2012
On 4/11/12 8:25 PM, 15102925731 wrote:
> 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??
Well, you do have to include all the -I and -D options so that clang can
find the Linux kernel header files. I don't know off hand what those
specific options are, but the easiest thing to do is to build the
kernel, grab the gcc command line that compiles your .c file to a .o
file, and then replace gcc with clang and add the -emit-llvm option to
the command line.
-- John T.
>
> Thanks!
>
> --
> 祝好!
> 甄凯
> ------------------------------------------------------------------------------------------------------
> 2012-04-12
> ------------------------------------------------------------------------------------------------------
> Name: 甄凯(ZhenKai)
> Homepage:http://www.renren.com/262729393
> Email: zhenkaixd at 126.com <mailto:zhenkaixd at 126.com>or 846227103 at qq.com
> <mailto: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 <mailto:zhenkaixd at 126.com>or
>> 846227103 at qq.com <mailto: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
>> <mailto: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 <http://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 <mailto:zhenkaixd at 126.com>or
>> 846227103 at qq.com <mailto: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 <mailto: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.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120411/e7a253af/attachment.html>
More information about the llvm-dev
mailing list