Patchwork [U-Boot,v3] Divides variable of linker flags to LDFLAGS-u-boot and LDFLAGS

login
register
mail settings
Submitter Nobuhiro Iwamatsu
Date Jan. 11, 2011, 12:07 p.m.
Message ID <1294747652-12603-1-git-send-email-iwamatsu@nigauri.org>
Download mbox | patch
Permalink /patch/78353/
State Accepted
Commit 8aba9dceebb14144e07d19593111ee3a999c37fc
Headers show

Comments

Nobuhiro Iwamatsu - Jan. 11, 2011, 12:07 p.m.
Linker needs to use the proper endian/bfd flags even when doing partial linking.
LDFLAGS_u-boot sets linker option which is called it when U-boot is built
(u-boot final).
LDFLAGS sets necessary option by partial linking (use in cmd_link_o_target).

CC: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
---
 V3: Remove trailing space.

 Makefile                  |    2 +-
 arch/blackfin/config.mk   |    3 ++-
 arch/i386/config.mk       |    3 ++-
 arch/nios2/config.mk      |    2 +-
 arch/powerpc/config.mk    |    4 ++--
 arch/sh/config.mk         |    2 +-
 arch/sh/cpu/sh2/config.mk |    4 +++-
 config.mk                 |    8 +++++---
 8 files changed, 17 insertions(+), 11 deletions(-)
Mike Frysinger - Jan. 12, 2011, 11:23 p.m.
On Tuesday, January 11, 2011 07:07:32 Nobuhiro Iwamatsu wrote:
> Linker needs to use the proper endian/bfd flags even when doing partial
> linking. LDFLAGS_u-boot sets linker option which is called it when U-boot
> is built (u-boot final).
> LDFLAGS sets necessary option by partial linking (use in
> cmd_link_o_target).

Acked-by: Mike Frysinger <vapier@gentoo.org>
-mike
Wolfgang Denk - April 11, 2011, 7:15 p.m.
Dear Nobuhiro Iwamatsu,

In message <1294747652-12603-1-git-send-email-iwamatsu@nigauri.org> you wrote:
> Linker needs to use the proper endian/bfd flags even when doing partial linking.
> LDFLAGS_u-boot sets linker option which is called it when U-boot is built
> (u-boot final).
> LDFLAGS sets necessary option by partial linking (use in cmd_link_o_target).
> 
> CC: Mike Frysinger <vapier@gentoo.org>
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> ---
>  V3: Remove trailing space.
> 
>  Makefile                  |    2 +-
>  arch/blackfin/config.mk   |    3 ++-
>  arch/i386/config.mk       |    3 ++-
>  arch/nios2/config.mk      |    2 +-
>  arch/powerpc/config.mk    |    4 ++--
>  arch/sh/config.mk         |    2 +-
>  arch/sh/cpu/sh2/config.mk |    4 +++-
>  config.mk                 |    8 +++++---
>  8 files changed, 17 insertions(+), 11 deletions(-)

This patch does no longer apply.  Is it still needed?  If yes, please
rebase and resubmit.  Thanks.

Best regards,

Wolfgang Denk
Scott Wood - April 11, 2011, 7:24 p.m.
On Mon, 11 Apr 2011 21:15:43 +0200
Wolfgang Denk <wd@denx.de> wrote:

> Dear Nobuhiro Iwamatsu,
> 
> In message <1294747652-12603-1-git-send-email-iwamatsu@nigauri.org> you wrote:
> > Linker needs to use the proper endian/bfd flags even when doing partial linking.
> > LDFLAGS_u-boot sets linker option which is called it when U-boot is built
> > (u-boot final).
> > LDFLAGS sets necessary option by partial linking (use in cmd_link_o_target).
> > 
> > CC: Mike Frysinger <vapier@gentoo.org>
> > Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> > ---
> >  V3: Remove trailing space.
> > 
> >  Makefile                  |    2 +-
> >  arch/blackfin/config.mk   |    3 ++-
> >  arch/i386/config.mk       |    3 ++-
> >  arch/nios2/config.mk      |    2 +-
> >  arch/powerpc/config.mk    |    4 ++--
> >  arch/sh/config.mk         |    2 +-
> >  arch/sh/cpu/sh2/config.mk |    4 +++-
> >  config.mk                 |    8 +++++---
> >  8 files changed, 17 insertions(+), 11 deletions(-)
> 
> This patch does no longer apply.  Is it still needed?  If yes, please
> rebase and resubmit.  Thanks.

It's already been applied (8aba9dceebb14144e07d19593111ee3a999c37fc)...

-Scott
Nobuhiro Iwamatsu - April 13, 2011, 2:01 a.m.
Hi,

# Scott has already replied, too.
You applied this patch by  commit 8aba9dceebb14144e07d19593111ee3a999c37fc.

Best regards,
  Nobuhiro

2011/4/12 Wolfgang Denk <wd@denx.de>:
> Dear Nobuhiro Iwamatsu,
>
> In message <1294747652-12603-1-git-send-email-iwamatsu@nigauri.org> you wrote:
>> Linker needs to use the proper endian/bfd flags even when doing partial linking.
>> LDFLAGS_u-boot sets linker option which is called it when U-boot is built
>> (u-boot final).
>> LDFLAGS sets necessary option by partial linking (use in cmd_link_o_target).
>>
>> CC: Mike Frysinger <vapier@gentoo.org>
>> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
>> ---
>>  V3: Remove trailing space.
>>
>>  Makefile                  |    2 +-
>>  arch/blackfin/config.mk   |    3 ++-
>>  arch/i386/config.mk       |    3 ++-
>>  arch/nios2/config.mk      |    2 +-
>>  arch/powerpc/config.mk    |    4 ++--
>>  arch/sh/config.mk         |    2 +-
>>  arch/sh/cpu/sh2/config.mk |    4 +++-
>>  config.mk                 |    8 +++++---
>>  8 files changed, 17 insertions(+), 11 deletions(-)
>
> This patch does no longer apply.  Is it still needed?  If yes, please
> rebase and resubmit.  Thanks.
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
> "It is easier to port a shell than a shell script."      - Larry Wall
>

Patch

diff --git a/Makefile b/Makefile
index 9055028..d6884ea 100644
--- a/Makefile
+++ b/Makefile
@@ -369,7 +369,7 @@  $(obj)u-boot.dis:	$(obj)u-boot
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 $(obj)u-boot:	depend \
diff --git a/arch/blackfin/config.mk b/arch/blackfin/config.mk
index ab117ca..0cba294 100644
--- a/arch/blackfin/config.mk
+++ b/arch/blackfin/config.mk
@@ -30,7 +30,8 @@  CONFIG_BFIN_BOOT_MODE := $(strip $(subst ",,$(CONFIG_BFIN_BOOT_MODE)))
 PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic
 PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
 
-LDFLAGS += --gc-sections -m elf32bfin
+LDFLAGS_u-boot += --gc-sections
+LDFLAGS += -m elf32bfin
 PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
 
 PLATFORM_CPPFLAGS += -DBFIN_CPU='"$(CONFIG_BFIN_CPU)"'
diff --git a/arch/i386/config.mk b/arch/i386/config.mk
index 8743f1a..3fb97c1 100644
--- a/arch/i386/config.mk
+++ b/arch/i386/config.mk
@@ -35,5 +35,6 @@  PLATFORM_CPPFLAGS += $(call cc-option, -fno-stack-protector)
 PLATFORM_CPPFLAGS += $(call cc-option, -mpreferred-stack-boundary=2)
 PLATFORM_CPPFLAGS += -DCONFIG_I386 -D__I386__
 
-LDFLAGS += --cref --gc-sections
+LDFLAGS += --cref
+LDFLAGS_u-boot += --gc-sections
 PLATFORM_RELFLAGS += -ffunction-sections
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk
index aba96b3..fa93180 100644
--- a/arch/nios2/config.mk
+++ b/arch/nios2/config.mk
@@ -31,5 +31,5 @@  PLATFORM_CPPFLAGS += -G0
 
 LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
 
-LDFLAGS += --gc-sections
+LDFLAGS_u-boot += --gc-sections
 PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk
index 2912604..64191c7 100644
--- a/arch/powerpc/config.mk
+++ b/arch/powerpc/config.mk
@@ -24,10 +24,10 @@ 
 CROSS_COMPILE ?= ppc_8xx-
 
 STANDALONE_LOAD_ADDR = 0x40000
-
+LDFLAGS_u-boot = --gc-sections
 PLATFORM_RELFLAGS += -mrelocatable -ffunction-sections -fdata-sections
 PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__
-PLATFORM_LDFLAGS  += -n --gc-sections
+PLATFORM_LDFLAGS  += -n
 
 ifdef CONFIG_SYS_LDSCRIPT
 # need to strip off double quotes
diff --git a/arch/sh/config.mk b/arch/sh/config.mk
index 415c949..4ef85e3 100644
--- a/arch/sh/config.mk
+++ b/arch/sh/config.mk
@@ -30,5 +30,5 @@  endif
 
 PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
 PLATFORM_LDFLAGS += -e $(CONFIG_SYS_TEXT_BASE) --defsym reloc_dst=$(CONFIG_SYS_TEXT_BASE)
-
+LDFLAGS_u-boot = --gc-sections
 LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds
diff --git a/arch/sh/cpu/sh2/config.mk b/arch/sh/cpu/sh2/config.mk
index 52d5a0f..f2d40aa 100644
--- a/arch/sh/cpu/sh2/config.mk
+++ b/arch/sh/cpu/sh2/config.mk
@@ -21,6 +21,8 @@ 
 # MA 02111-1307 USA
 #
 #
+ENDIANNESS += -EB
+
 PLATFORM_CPPFLAGS += -m3e -mb
 PLATFORM_RELFLAGS += -ffixed-r13
-PLATFORM_LDFLAGS += -EB
+PLATFORM_LDFLAGS += $(ENDIANNESS)
diff --git a/config.mk b/config.mk
index 66f8fe6..5147c35 100644
--- a/config.mk
+++ b/config.mk
@@ -204,9 +204,11 @@  endif
 
 AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
 
-LDFLAGS += -Bstatic -T $(obj)u-boot.lds $(PLATFORM_LDFLAGS)
+LDFLAGS += $(PLATFORM_LDFLAGS)
+
+LDFLAGS_u-boot += -Bstatic -T $(obj)u-boot.lds $(PLATFORM_LDFLAGS)
 ifneq ($(CONFIG_SYS_TEXT_BASE),)
-LDFLAGS += -Ttext $(CONFIG_SYS_TEXT_BASE)
+LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
 endif
 
 # Location of a usable BFD library, where we define "usable" as
@@ -259,7 +261,7 @@  $(obj)%.s:	%.c
 
 # If the list of objects to link is empty, just create an empty built-in.o
 cmd_link_o_target = $(if $(strip $1),\
-		      $(LD) -r -o $@ $1 ,\
+		      $(LD) $(LDFLAGS) -r -o $@ $1,\
 		      rm -f $@; $(AR) rcs $@ )
 
 #########################################################################