[U-Boot] [PATCH] kbuild: avoid race between dtbs and dt/dt.dtb targets

If the final targets depend on both "dtbs" and "dts/dt.dtb", and -j option is given to the command line, multiple threads descend into the dts/ directory, which causes build error.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index d0e7a8a..ad434c7 100644 --- a/Makefile +++ b/Makefile @@ -810,7 +810,9 @@ ifeq ($(CONFIG_DM_I2C_COMPAT),y) endif
PHONY += dtbs -dtbs dts/dt.dtb: checkdtc u-boot +dtbs: dts/dt.dtb + @: +dts/dt.dtb: checkdtc u-boot $(Q)$(MAKE) $(build)=dts dtbs
quiet_cmd_copy = COPY $@

On Thu, Jun 23, 2016 at 01:53:46PM +0900, Masahiro Yamada wrote:
If the final targets depend on both "dtbs" and "dts/dt.dtb", and -j option is given to the command line, multiple threads descend into the dts/ directory, which causes build error.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com
Tested-by: Andreas Dannenberg dannenberg@ti.com
Yamada-san, thanks, this patch is fantastic! It fixes the issue discussed under [1] (no longer need to suppress parallel DTC compiles) and also avoids the general double-compile of the DTC files that happened with my patch series. Tested it on a few TI ARMv7 OMAP-type EVMs and did not see any adverse effects.
Regards,
-- Andreas Dannenberg Texas Instruments Inc
[1] https://www.mail-archive.com/u-boot@lists.denx.de/msg217010.html
Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile index d0e7a8a..ad434c7 100644 --- a/Makefile +++ b/Makefile @@ -810,7 +810,9 @@ ifeq ($(CONFIG_DM_I2C_COMPAT),y) endif
PHONY += dtbs -dtbs dts/dt.dtb: checkdtc u-boot +dtbs: dts/dt.dtb
- @:
+dts/dt.dtb: checkdtc u-boot $(Q)$(MAKE) $(build)=dts dtbs
quiet_cmd_copy = COPY $@
1.9.1
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Thu, Jun 23, 2016 at 01:53:46PM +0900, Masahiro Yamada wrote:
If the final targets depend on both "dtbs" and "dts/dt.dtb", and -j option is given to the command line, multiple threads descend into the dts/ directory, which causes build error.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com Tested-by: Andreas Dannenberg dannenberg@ti.com
Applied to u-boot/master, thanks!
participants (3)
-
Andreas Dannenberg
-
Masahiro Yamada
-
Tom Rini