MIPS parallel build breakage

Sascha Hauer s.hauer at pengutronix.de
Thu Mar 1 03:07:29 PST 2018


Hi Sam and Antony,

(Antony because you introduced this and Sam because you have intimate
knowledge with our build system ;)

I am trying to solve a problem that annoys me for some years now. The
problem is that the MIPS defconfigs regularly fail in my autobuilder.
I usually help myself with trying it again and most of the time it
then works, but doing this for years increases the pressure to do
something.

What happens is that the MIPS builds use include/generated/compile.h:

> arch/mips/include/asm/pbl_macros.h:28:#include <generated/compile.h>

This often ends in:

> In file included from arch/mips/boot/start.S:20:0: arch/mips/include/asm/pbl_macros.h:28:31:
> fatal error: generated/compile.h: No such file or directory
> compilation terminated.

include/generated/compile.h is generated in common/Makefile:

> include/generated/compile.h: FORCE
> 	@$($(quiet)chk_compile.h)
> 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
> 	"$(UTS_MACHINE)" "$(CC) $(KBUILD_CFLAGS)"

Other users of this file add an explicit dependency on it:

> # dependencies on generated files need to be listed explicitly
> $(obj)/version.o: include/generated/compile.h

This only seems to work though when the dependent file is in the same
directory, but not when the file is in arch/mips/boot/.

I tried doing the include/generated/compile.h in Makefile instead of
common/Makefile, but then the version counting gets confused and causes
unnecessary rebuilds.

Any ideas how to solve this?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list