From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Sat, 12 Oct 2013 09:43:33 +0200 Subject: [U-Boot] [PATCH] Makefile: Introduce ARCH_PLATFORM_LIBGCC variable In-Reply-To: <1381522383-25070-1-git-send-email-trini@ti.com> References: <1381522383-25070-1-git-send-email-trini@ti.com> Message-ID: <20131012094333.422274df@lilith> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tom, On Fri, 11 Oct 2013 16:13:03 -0400, Tom Rini wrote: > 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 > Signed-off-by: Tom Rini > --- > Makefile | 4 ++++ > arch/arm/config.mk | 11 +++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/Makefile b/Makefile > index b09bfcc..13b396f 100644 > --- a/Makefile > +++ b/Makefile > @@ -357,8 +357,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 > > diff --git a/arch/arm/config.mk b/arch/arm/config.mk > index d0cf43f..e1d0dec 100644 > --- a/arch/arm/config.mk > +++ b/arch/arm/config.mk > @@ -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. What does this last sentence mean exactly? > +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 Amicalement, -- Albert.