* Thomas Gleixner wrote: > Impact: workaround for distcc/icecc > > Peter and I noticed that distcc and icecc based kernel compiles > started to show random full kernel rebuilds even when nothing or just > a .c file changed. The reason is "change of the command line" which > caused scripts/mod/empty.o to rebuild and due to the dependencies the > complete kernel tree. I never change the command line simply because I > use a script for my builds. > > The root cause for this problem is the check for the CFI support in > x86 binutils. The call is generated via: > > echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" - > > This works fine as long as a local gcc is used or distcc/icecc use the > local machine. When distcc/icecc offload the compile to a remote > machine the compile fails with the following error message: > gcc: : No such file or directory > > Now we get command lines with -DCONFIG_CFI* and without every other > compile which causes the full rebuilds. > > Digging trough the distcc/icecc code it seems that the stdin input for > remote compiles is not handled correctly. Indeed there is some strange > comment about this, but unfortunately no decision to compile it > local. :( > > distcc and icecc are used by many developers and we can not fix the > versions which are out there in the wild, but we can avoid the stdin > based call easily: echo the asm code into the temp file which is used > for the output and use it as input file for the compiler. > > Signed-off-by: Thomas Gleixner > > --- > scripts/Kbuild.include | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Doesnt fully work: arch/x86/kernel/entry_32.S:346: Error: unknown pseudo-op: `.cfi_signal_frame' arch/x86/kernel/entry_32.S:394: Error: unknown pseudo-op: `.cfi_signal_frame' arch/x86/kernel/entry_32.S:519: Error: unknown pseudo-op: `.cfi_signal_frame' arch/x86/kernel/entry_32.S:614: Error: unknown pseudo-op: `.cfi_signal_frame' arch/x86/kernel/entry_32.S:685: Error: unknown pseudo-op: `.cfi_signal_frame' arch/x86/kernel/entry_32.S:754: Error: unknown pseudo-op: `.cfi_signal_frame' config attached. Distcc driven build. Ingo