Re: [U-Boot] [RFC] kbuild.h: workaround for llvm IAS

From: Jeroen Hofstee
Date: Sat Jun 28 2014 - 08:53:29 EST


Hello Masahiro,

On 27-06-14 08:38, Masahiro Yamada wrote:
KBuild (ab)uses the asm statement to write to a file and
llvm integrated as chokes about these invalid asm statements.
Workaround it by making it look like valid asm code.

Signed-off-by: Jeroen Hofstee <jeroen@xxxxxxxxxxxxx>
I think Linux has the same problem.

Are you willing to this patch to linux-kbuild ML?
Or fixing U-Boot only?
I don't mind in general, but it is just noise for them (cc-ing them to
create some). For u-boot (ARM) you actually get a valid binary with
this patch after clang support has landed, for linux you just get other
errors as far as I tried (native only), patch below.

However in linux there seem more spots relying on the format, e.g.
arch/ia64/kvm/Makefile
arch/ia64/kernel/Makefile
arch/um/Makefile

So if anything, I think this should be made a general rules first
in the makefiles. It seems stupid to potentially break something
while it gains nothing.

So yes, u-boot only afaic, or does that make your syncing more difficult?
I don't think syncing would be difficult.

BTW, do you know how they resolve this build error in other projects,
for example, in llvmlinux ?
http://llvm.linuxfoundation.org/index.php/Main_Page

Linux folks merged Clang support into the top Makefile, but not into ./Kbuild.
I don't know why.
I don't know how the llvmlinux people do it, but the alternative is to
add -no-integrated-as for clang when compiling such files (or use an
older clang version, since that used to be the default). Since gcc's LTO
dislikes the asm-offset.c technique as well, I think it is better to actually
create valid asm, so it no longer depends on compiler features at all.
I will leave it up to the llvmlinux folks to come up with a solution for
linux though...

Regards,
Jeroen





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/