Hi Matthias,
2017-04-05 2:27 GMT+09:00 Matthias Kaehlcke <m...@chromium.org>: > From: VinÃcius Tinti <viniciusti...@gmail.com> > > Add rules to kbuild in order to generate LLVM bitcode files with the .ll > extension when using clang. First, I'd like to be sure about the terminology "LLVM bitcode" because "bitcode" sounds like human-unreadable binary. For example, 'man llvm-as' says: llvm-as is the LLVM assembler. It reads a file containing human-readable LLVM assembly language, translates it to LLVM bitcode, and writes the result into a file or to standard output. As far as I understood: *.ll - LLVM assembly (human readable file) *.bc - LLVM bitcode (binary file) Is this correct? > # from c code > CC=clang make kernel/pid.ll This does not work because CC is overridden in the top-level Makefile. It should be make CC=clang kernel/pid.ll > # from asm code > CC=clang make arch/x86/kernel/preempt.ll arch/x86/kernel/preempt.* does not exist (at least in the latest tree). > + > +quiet_cmd_as_ll_S = CPP $(quiet_modtag) $@ > + cmd_as_ll_S = $(CPP) $(a_flags) -o $@ $< > + > +$(obj)/%.ll: $(src)/%.S FORCE > + $(call if_changed_dep,as_ll_S) > + I could not understand how this rule can convert architecture-specific assembly to LLVM intermediate expression. This is just pre-processing *.S file. Actually, this is completely the same as the rule *.S -> *.s quiet_cmd_cpp_s_S = CPP $(quiet_modtag) $@ cmd_cpp_s_S = $(CPP) $(a_flags) -o $@ $< $(obj)/%.s: $(src)/%.S FORCE $(call if_changed_dep,cpp_s_S) -- Best Regards Masahiro Yamada