[U-Boot] [PATCH 0/2] Allow empty board dir and fix build error of arcangel4 boards

Currently arcangel4 and arcangel4-be boards are broken.
$ make CROSS_COMPILE=arc-buildroot-linux-uclibc- arcangel4_config all Configuring for arcangel4 board... GEN include/autoconf.mk.dep GEN include/autoconf.mk CHK include/config/uboot.release [snip] LDS u-boot.lds LD u-boot arc-buildroot-linux-uclibc-ld.bfd: cannot find board/synopsys/arcangel4/built-in.o: No such file or directory make[1]: *** [u-boot] Error 1 make: *** [build-one-by-one] Error 2
The cause of the build error is that neither "obj-y" nor "obj-" is defined in board/synopsys/arcangel4/Makefile. In kbuild, empty makefiles are not allowed.
The same sort of build errors have happened before this. Commit 2aa43f70 resolved the build error by adding "obj- := __dummy__.o", but it was not the best solution.
If there are no source files to compile under the board directory, it is better to not descend into that directory.
Masahiro Yamada (2): kbuild: allow empty board directories arc: arcangel4: set board entry <none> to fix a build error
Makefile | 2 +- board/synopsys/arcangel4/Makefile | 11 ----------- boards.cfg | 4 ++-- config.mk | 2 ++ mkconfig | 6 ++++-- 5 files changed, 9 insertions(+), 16 deletions(-) delete mode 100644 board/synopsys/arcangel4/Makefile

U-Boot has compelled all boards to have board/${BOARD}/ or board/${VENDOR}/${BOARD}/ directory.
Sometimes it does not seem suitable for some boards, for example Sandbox. (Is it a board?)
And arcangel4 board has nothing to compile under the board directory.
This commit makes the build system more flexible: If '<none>' is given to the 6th column (=Board name) of boards.cfg, Kbuild will not descend into the board directory.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com ---
Makefile | 2 +- config.mk | 2 ++ mkconfig | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile index ea4a362..1e55be1 100644 --- a/Makefile +++ b/Makefile @@ -634,7 +634,7 @@ endif libs-$(CONFIG_ARM) += arch/arm/cpu/ libs-$(CONFIG_PPC) += arch/powerpc/cpu/
-libs-y += board/$(BOARDDIR)/ +libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/)
libs-y := $(sort $(libs-y))
diff --git a/config.mk b/config.mk index bb3da0d..4657577 100644 --- a/config.mk +++ b/config.mk @@ -35,11 +35,13 @@ sinclude $(TOPDIR)/$(CPUDIR)/config.mk # include CPU specific rules ifdef SOC sinclude $(TOPDIR)/$(CPUDIR)/$(SOC)/config.mk # include SoC specific rules endif +ifneq ($(BOARD),) ifdef VENDOR BOARDDIR = $(VENDOR)/$(BOARD) else BOARDDIR = $(BOARD) endif +endif ifdef BOARD sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules endif diff --git a/mkconfig b/mkconfig index 5f516f2..9827e4d 100755 --- a/mkconfig +++ b/mkconfig @@ -55,7 +55,9 @@ CONFIG_NAME="${7%_config}" arch="$2" cpu=`echo $3 | awk 'BEGIN {FS = ":"} ; {print $1}'` spl_cpu=`echo $3 | awk 'BEGIN {FS = ":"} ; {print $2}'` -if [ "$6" = "-" ] ; then +if [ "$6" = "<none>" ] ; then + board= +elif [ "$6" = "-" ] ; then board=${BOARD_NAME} else board="$6" @@ -177,8 +179,8 @@ echo "#define CONFIG_SYS_BOARD "${board}"" >> config.h
[ "${soc}" ] && echo "#define CONFIG_SYS_SOC "${soc}"" >> config.h
+[ "${board}" ] && echo "#define CONFIG_BOARDDIR board/$BOARDDIR" >> config.h cat << EOF >> config.h -#define CONFIG_BOARDDIR board/$BOARDDIR #include <config_cmd_defaults.h> #include <config_defaults.h> #include <configs/${CONFIG_NAME}.h>

On Mon, Mar 03, 2014 at 07:03:17PM +0900, Masahiro Yamada wrote:
U-Boot has compelled all boards to have board/${BOARD}/ or board/${VENDOR}/${BOARD}/ directory.
Sometimes it does not seem suitable for some boards, for example Sandbox. (Is it a board?)
And arcangel4 board has nothing to compile under the board directory.
This commit makes the build system more flexible: If '<none>' is given to the 6th column (=Board name) of boards.cfg, Kbuild will not descend into the board directory.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com
Applied to u-boot/master, thanks!

There are no source files in board/synopsys/arcangel4/ directory.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Cc: Alexey Brodkin Alexey.Brodkin@synopsys.com ---
board/synopsys/arcangel4/Makefile | 11 ----------- boards.cfg | 4 ++-- 2 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 board/synopsys/arcangel4/Makefile
diff --git a/board/synopsys/arcangel4/Makefile b/board/synopsys/arcangel4/Makefile deleted file mode 100644 index 575e58f..0000000 --- a/board/synopsys/arcangel4/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# This board is mostly used for debugging U-Boot in simulation (ISS). -# The only peripheral which is used on this board is a serial port which -# requires no initialization except those in "include/configs/arcangel4.h". -# And now there's no specific initializations for this board. -# So this Makefile is only required for satisfaction of U-Boot build system. diff --git a/boards.cfg b/boards.cfg index de32293..ee633b7 100644 --- a/boards.cfg +++ b/boards.cfg @@ -44,9 +44,9 @@ ###########################################################################################################
Active aarch64 armv8 - armltd vexpress64 vexpress_aemv8a vexpress_aemv8a:ARM64 David Feng fenghua@phytium.com.cn -Active arc arc700 - synopsys - arcangel4 - Alexey Brodkin abrodkin@synopsys.com +Active arc arc700 - synopsys <none> arcangel4 - Alexey Brodkin abrodkin@synopsys.com Active arc arc700 - synopsys - axs101 - Alexey Brodkin abrodkin@synopsys.com -Active arc arc700 - synopsys arcangel4 arcangel4-be - Alexey Brodkin abrodkin@synopsys.com +Active arc arc700 - synopsys <none> arcangel4-be - Alexey Brodkin abrodkin@synopsys.com Active arm arm1136 - armltd integrator integratorcp_cm1136 integratorcp:CM1136 Linus Walleij linus.walleij@linaro.org Active arm arm1136 mx31 - - imx31_phycore - - Active arm arm1136 mx31 davedenx - qong - Wolfgang Denk wd@denx.de

On Mon, Mar 03, 2014 at 07:03:18PM +0900, Masahiro Yamada wrote:
There are no source files in board/synopsys/arcangel4/ directory.
Signed-off-by: Masahiro Yamada yamada.m@jp.panasonic.com Cc: Alexey Brodkin Alexey.Brodkin@synopsys.com
Applied to u-boot/master, thanks!
participants (2)
-
Masahiro Yamada
-
Tom Rini