<div dir="ltr"><div><div>When you enter &quot;make help&quot; you are told that &quot;make dir/xxx.ll&quot; will generate a LLVM IR assembly listing of the C file.   But this is not the case, in fact, the xxx.ll that is generated is a assembly listing generated by objdump of the object file.    So is this going to be fixed?<br><br></div>Furthermore, if you do &quot;make V=1 dir/xxx.ll&quot; you will see that the gcc is being used, which is shown below (removing lots of intermediate options), and there is a &quot;-emit-llvm&quot; at the end of it:<br><br>  gcc -Wp,-MD,kernel/.workqueue.ll.d  -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated  -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ {SNIP-SNIP-SNIP} -emit-llvm -S -o kernel/workqueue.ll kernel/workqueue.c<br><br></div>Of course if change gcc to &quot;clang&quot;, the bitcode MAY SOMETIMES be generated, and sometimes NOT, depending on error.    For kernel/workqueue.c itself these are the errors:<br><br>kernel/workqueue.c:285:1: error: expected &#39;;&#39; after top level declarator<br>include/linux/moduleparam.h:147:2: note: expanded from macro &#39;module_param_named&#39;<br>        module_param_cb(name, &amp;param_ops_##type, &amp;value, perm);            \<br>        ^<br>include/linux/moduleparam.h:167:22: note: expanded from macro &#39;module_param_cb&#39;<br>        __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)<br>                            ^<br>include/linux/moduleparam.h:13:44: note: expanded from macro &#39;MODULE_PARAM_PREFIX&#39;<br>#define MODULE_PARAM_PREFIX KBUILD_MODNAME &quot;.&quot;<br>                                           ^<br>kernel/workqueue.c:289:1: error: use of undeclared identifier &#39;KBUILD_MODNAME&#39;<br>module_param_named(power_efficient, wq_power_efficient, bool, 0444);<br>^<br>include/linux/moduleparam.h:147:2: note: expanded from macro &#39;module_param_named&#39;<br>        module_param_cb(name, &amp;param_ops_##type, &amp;value, perm);            \<br>        ^<br>include/linux/moduleparam.h:167:22: note: expanded from macro &#39;module_param_cb&#39;<br>        __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)<br>                            ^<br>include/linux/moduleparam.h:13:29: note: expanded from macro &#39;MODULE_PARAM_PREFIX&#39;<br>#define MODULE_PARAM_PREFIX KBUILD_MODNAME &quot;.&quot;<br>                            ^<br>kernel/workqueue.c:289:1: error: expected &#39;;&#39; after top level declarator<br>include/linux/moduleparam.h:147:2: note: expanded from macro &#39;module_param_named&#39;<br>        module_param_cb(name, &amp;param_ops_##type, &amp;value, perm);            \<br><br clear="all"><div><div><div><div><div><br>-- <br><div>Regards,<br>Peter Teoh</div>
</div></div></div></div></div></div>