[U-Boot] [PATCH V2] examples: api: allow build with private libgcc
Che-Liang Chiou
clchiou at chromium.org
Tue Oct 18 08:53:34 CEST 2011
The examples/api is not configured with USE_PRIVATE_LIBGCC. This makes
building examples/api break on certain boards that do not/cannot use the
public libgcc.
Nevertheless, this patch has to also touch the top-level Makefile to fix
this problem because the current top-level Makefile does not specify
libgcc as a prerequisite of examples/api, and explicitly builds
examples/api _before_ libgcc.
For testing this patch, I added the following to configs/seaboard.h and
ran demo.bin on a Seaboard.
+#define CONFIG_API
+#define CONFIG_SYS_MMC_MAX_DEVICE 2
+#define CONFIG_CMD_NET
+#define CONFIG_NET_MULTI
Signed-off-by: Che-Liang Chiou <clchiou at chromium.org>
Acked-by: Mike Frysinger <vapier at gentoo.org>
---
Changes in V2
Rebase to ToT
Makefile | 18 +++++++++---------
examples/api/Makefile | 4 +---
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index e9d75f8..26956ae 100644
--- a/Makefile
+++ b/Makefile
@@ -141,7 +141,10 @@ unexport CDPATH
# is "yes"), so compile examples after U-Boot is compiled.
SUBDIR_TOOLS = tools
SUBDIR_EXAMPLES = examples/standalone examples/api
-SUBDIRS = $(SUBDIR_TOOLS) $(SUBDIR_EXAMPLES)
+SUBDIRS = $(SUBDIR_TOOLS)
+ifndef CONFIG_SANDBOX
+SUBDIRS += $(SUBDIR_EXAMPLES)
+endif
.PHONY : $(SUBDIRS) $(VERSION_FILE) $(TIMESTAMP_FILE)
@@ -158,11 +161,6 @@ sinclude $(obj)include/autoconf.mk
include $(obj)include/config.mk
export ARCH CPU BOARD VENDOR SOC
-ifndef CONFIG_SANDBOX
-SUBDIRS += examples/standalone \
- examples/api
-endif
-
# set default to nothing for native builds
ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE ?=
@@ -359,7 +357,7 @@ ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin
ALL-$(CONFIG_MMC_U_BOOT) += $(obj)mmc_spl/u-boot-mmc-spl.bin
ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
-all: $(ALL-y)
+all: $(ALL-y) $(SUBDIR_EXAMPLES)
$(obj)u-boot.hex: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
@@ -422,7 +420,7 @@ GEN_UBOOT = \
endif
$(obj)u-boot: depend \
- $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
+ $(SUBDIR_TOOLS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
$(GEN_UBOOT)
ifeq ($(CONFIG_KALLSYMS),y)
smap=`$(call SYSTEM_MAP,u-boot) | \
@@ -435,7 +433,7 @@ endif
$(OBJS): depend
$(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@))
-$(LIBS): depend $(SUBDIRS)
+$(LIBS): depend $(SUBDIR_TOOLS)
$(MAKE) -C $(dir $(subst $(obj),,$@))
$(LIBBOARD): depend $(LIBS)
@@ -444,6 +442,8 @@ $(LIBBOARD): depend $(LIBS)
$(SUBDIRS): depend
$(MAKE) -C $@ all
+$(SUBDIR_EXAMPLES): $(obj)u-boot
+
$(LDSCRIPT): depend
$(MAKE) -C $(dir $@) $(notdir $@)
diff --git a/examples/api/Makefile b/examples/api/Makefile
index 5b5f7a6..bad05af 100644
--- a/examples/api/Makefile
+++ b/examples/api/Makefile
@@ -62,8 +62,6 @@ OBJS += $(addprefix $(obj),$(COBJ_FILES-y))
OBJS += $(addprefix $(obj),$(notdir $(EXT_COBJ_FILES-y)))
OBJS += $(addprefix $(obj),$(notdir $(EXT_SOBJ_FILES-y)))
-gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
-
CPPFLAGS += -I..
all: $(obj).depend $(OUTPUT)
@@ -71,7 +69,7 @@ all: $(obj).depend $(OUTPUT)
#########################################################################
$(OUTPUT): $(OBJS)
- $(LD) -Ttext $(LOAD_ADDR) -o $@ $^ -L$(gcclibdir) -lgcc
+ $(LD) -Ttext $(LOAD_ADDR) -o $@ $^ $(PLATFORM_LIBS)
$(OBJCOPY) -O binary $@ $(OUTPUT).bin 2>/dev/null
# Rule to build generic library C files
--
1.7.3.1
More information about the U-Boot
mailing list