Makefile: Introduce ARCH_PLATFORM_LIBGCC variable
In some cases, such as arm multi-lib hardfloat (hf) toolchains, we will have multiple libgcc.a's available, and the arch needs to provide additional logic to determine the right file to use (-print-libgcc-file-name contains no CFLAG parsing logic). Cc: Albert Aribaud <albert.u.boot@aribaud.net> Signed-off-by: Tom Rini <trini@ti.com>
This commit is contained in:
parent
183acb7003
commit
070127ecc9
4
Makefile
4
Makefile
|
@ -358,8 +358,12 @@ else
|
|||
PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
|
||||
endif
|
||||
else
|
||||
ifneq ("$(ARCH_PLATFORM_LIBGCC)","")
|
||||
PLATFORM_LIBGCC := -L $(shell dirname $(ARCH_PLATFORM_LIBGCC)) -lgcc
|
||||
else
|
||||
PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
|
||||
endif
|
||||
endif
|
||||
PLATFORM_LIBS += $(PLATFORM_LIBGCC)
|
||||
export PLATFORM_LIBS
|
||||
|
||||
|
|
|
@ -19,6 +19,17 @@ LDFLAGS_FINAL += --gc-sections
|
|||
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections \
|
||||
-fno-common -ffixed-r9 -msoft-float
|
||||
|
||||
#
|
||||
# When we use a hardfp toolchain if there are both 'libgcc.a' (hardfp) and
|
||||
# 'arm-linux-gnueabi/libgcc.a' (softfp) we need to use the latter. We
|
||||
# cannot always build with a hardfp-only toolchain.
|
||||
#
|
||||
ARCH_PLATFORM_LIBGCC := $(shell \
|
||||
X=`$(CC) -print-file-name=arm-linux-gnueabi/libgcc.a`; \
|
||||
if [ -f $$X ]; then echo $$X ; \
|
||||
else $(CC) -print-file-name=libgcc.a ; \
|
||||
fi)
|
||||
|
||||
# Support generic board on ARM
|
||||
__HAVE_ARCH_GENERIC_BOARD := y
|
||||
|
||||
|
|
Loading…
Reference in New Issue