diff options
author | Wolfgang Denk <wd@denx.de> | 2009-07-23 13:15:59 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-07-27 00:11:32 +0200 |
commit | 52b1bf2c5cd2f8af880dab503d0039b35570665b (patch) | |
tree | e9e4be6a20d20700057812ddac99f1c8c09974d7 /lib_arm | |
parent | 479105065d965121f57b55dcfe83a940cba46ac1 (diff) | |
download | u-boot-imx-52b1bf2c5cd2f8af880dab503d0039b35570665b.zip u-boot-imx-52b1bf2c5cd2f8af880dab503d0039b35570665b.tar.gz u-boot-imx-52b1bf2c5cd2f8af880dab503d0039b35570665b.tar.bz2 |
Make linking against libgcc configurable
Many (especially ARM) tool chains seem to come with broken or
otherwise unusable (for the purposes of builing U-Boot) run-time
support libraries `libgcc.a'. By using the "USE_PRIVATE_LIBGCC"
setting we allow to use alternative libraries instead.
"USE_PRIVATE_LIBGCC" can either be set as an environment variable in
the shell, or as a command line argument when running "make", i. e.
$ make USE_PRIVATE_LIBGCC=yes
or
$ USE_PRIVATE_LIBGCC=yes
$ export USE_PRIVATE_LIBGCC
$ make
The value of "USE_PRIVATE_LIBGCC" is the name of the directory which
contains the alternative run-time support library `libgcc.a'. The
special value "yes" selects the directory $(OBJTREE)/lib_$(ARCH) .
Note that not all architectures provide an alternative `libgcc.a' in
their lib_$(ARCH) directories - so far, only ARM does.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
cc: Stefan Roese <sr@denx.de>
Diffstat (limited to 'lib_arm')
-rw-r--r-- | lib_arm/Makefile | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/lib_arm/Makefile b/lib_arm/Makefile index 4469361..241782c 100644 --- a/lib_arm/Makefile +++ b/lib_arm/Makefile @@ -24,13 +24,16 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(ARCH).a +LIBGCC = $(obj)libgcc.a -SOBJS-y += _ashldi3.o -SOBJS-y += _ashrdi3.o -SOBJS-y += _divsi3.o -SOBJS-y += _modsi3.o -SOBJS-y += _udivsi3.o -SOBJS-y += _umodsi3.o +GLSOBJS += _ashldi3.o +GLSOBJS += _ashrdi3.o +GLSOBJS += _divsi3.o +GLSOBJS += _modsi3.o +GLSOBJS += _udivsi3.o +GLSOBJS += _umodsi3.o + +GLCOBJS += div0.o COBJS-y += board.o COBJS-y += bootm.o @@ -38,16 +41,27 @@ COBJS-y += cache.o ifndef CONFIG_SYS_NO_CP15_CACHE COBJS-y += cache-cp15.o endif -COBJS-y += div0.o COBJS-y += interrupts.o COBJS-y += reset.o -SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) +SRCS := $(GLSOBJS:.o=.S) $(GLCOBJS:.o=.c) \ + $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y)) +LGOBJS := $(addprefix $(obj),$(GLSOBJS)) \ + $(addprefix $(obj),$(GLCOBJS)) + +ifdef USE_PRIVATE_LIBGCC +all: $(LIB) $(LIBGCC) +else +all: $(LIB) +endif $(LIB): $(obj).depend $(OBJS) $(AR) $(ARFLAGS) $@ $(OBJS) +$(LIBGCC): $(obj).depend $(LGOBJS) + $(AR) $(ARFLAGS) $@ $(LGOBJS) + ######################################################################### # defines $(obj).depend target |