diff mbox

[U-Boot,v3] examples: select libgcc for non-default architecture

Message ID 1400230457-11075-1-git-send-email-abrodkin@synopsys.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Alexey Brodkin May 16, 2014, 8:54 a.m. UTC
In case of multilib-enabled toolchains if default architecture differ from
the one examples are being built for linker will fail to link example object
files with libgcc of another (non-compatible) architecture.

Interesting enough for years in main Makefile we used CFLAGS/c_flags for this
but not for examples.

So fixing it now.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Tom Rini <trini@ti.com>
Cc: Wolfgang Denx <wd@denx.de>

---
In v3 we export PLATFORM_LIBGCC from the main Makefile and use it for examples
---
 Makefile                     | 1 +
 examples/standalone/Makefile | 4 +---
 2 files changed, 2 insertions(+), 3 deletions(-)

Comments

Wolfgang Denk May 16, 2014, 11:55 a.m. UTC | #1
Dear Alexey Brodkin,

In message <1400230457-11075-1-git-send-email-abrodkin@synopsys.com> you wrote:
> In case of multilib-enabled toolchains if default architecture differ from
> the one examples are being built for linker will fail to link example object
> files with libgcc of another (non-compatible) architecture.
> 
> Interesting enough for years in main Makefile we used CFLAGS/c_flags for this
> but not for examples.
> 
> So fixing it now.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> 
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Wolfgang Denx <wd@denx.de>
> 
> ---
> In v3 we export PLATFORM_LIBGCC from the main Makefile and use it for examples

Thanks!

Acked-by: WOlfgang Denk <wd@denx.de>

Best regards,

Wolfgang Denk
Masahiro Yamada May 19, 2014, 4:09 a.m. UTC | #2
Hi Alexey,

On Fri, 16 May 2014 12:54:17 +0400
Alexey Brodkin <Alexey.Brodkin@synopsys.com> wrote:

> In case of multilib-enabled toolchains if default architecture differ from
> the one examples are being built for linker will fail to link example object
> files with libgcc of another (non-compatible) architecture.
> 
> Interesting enough for years in main Makefile we used CFLAGS/c_flags for this
> but not for examples.
> 
> So fixing it now.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> 
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Wolfgang Denx <wd@denx.de>


I did build test on some boards with/without CONFIG_USE_PRIVATE_LIBGCC
and I worked as expected.

So, you can have my

Acked-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Thanks!


Best Regards
Masahiro Yamada
Tom Rini May 23, 2014, 8:52 p.m. UTC | #3
On Fri, May 16, 2014 at 12:54:17PM +0400, Alexey Brodkin wrote:

> In case of multilib-enabled toolchains if default architecture differ from
> the one examples are being built for linker will fail to link example object
> files with libgcc of another (non-compatible) architecture.
> 
> Interesting enough for years in main Makefile we used CFLAGS/c_flags for this
> but not for examples.
> 
> So fixing it now.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> 
> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Tom Rini <trini@ti.com>
> Cc: Wolfgang Denx <wd@denx.de>
> Acked-by: WOlfgang Denk <wd@denx.de>
> Acked-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/Makefile b/Makefile
index ff38a43..fd4e176 100644
--- a/Makefile
+++ b/Makefile
@@ -696,6 +696,7 @@  PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`
 endif
 PLATFORM_LIBS += $(PLATFORM_LIBGCC)
 export PLATFORM_LIBS
+export PLATFORM_LIBGCC
 
 # Special flags for CPP when processing the linker script.
 # Pass the version down so we can handle backwards compatibility
diff --git a/examples/standalone/Makefile b/examples/standalone/Makefile
index 9ab5446..2dacba2 100644
--- a/examples/standalone/Makefile
+++ b/examples/standalone/Makefile
@@ -38,8 +38,6 @@  targets += $(patsubst $(obj)/%,%,$(LIB)) $(COBJS) $(LIBOBJS-y)
 LIBOBJS	:= $(addprefix $(obj)/,$(LIBOBJS-y))
 ELF	:= $(addprefix $(obj)/,$(ELF))
 
-gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
-
 # For PowerPC there's no need to compile standalone applications as a
 # relocatable executable.  The relocation data is not needed, and
 # also causes the entry point of the standalone application to be
@@ -63,7 +61,7 @@  $(LIB):	$(LIBOBJS) FORCE
 
 quiet_cmd_link_elf = LD      $@
       cmd_link_elf = $(LD) $(LDFLAGS) -g -Ttext $(CONFIG_STANDALONE_LOAD_ADDR) \
-		     -o $@ -e $(SYM_PREFIX)$(@F) $< $(LIB) -L$(gcclibdir) -lgcc
+		     -o $@ -e $(SYM_PREFIX)$(@F) $< $(LIB) $(PLATFORM_LIBGCC)
 
 $(ELF): $(obj)/%: $(obj)/%.o $(LIB) FORCE
 	$(call if_changed,link_elf)