[U-Boot] [PATCH 1/2 for 2010.12 ] Add support PLATFORM_LDFLAGS to cmd_link_o_target

Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- config.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/config.mk b/config.mk index c6d6f7b..bbcefbe 100644 --- a/config.mk +++ b/config.mk @@ -262,7 +262,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) $(ENDIANNESS) -r -o $@ $1 ,\ rm -f $@; $(AR) rcs $@ )
#########################################################################

Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org --- arch/sh/cpu/sh2/config.mk | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/sh/cpu/sh2/config.mk b/arch/sh/cpu/sh2/config.mk index 52d5a0f..02ef981 100644 --- a/arch/sh/cpu/sh2/config.mk +++ b/arch/sh/cpu/sh2/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # # +ENDIANNESS = -EB PLATFORM_CPPFLAGS += -m3e -mb PLATFORM_RELFLAGS += -ffixed-r13 -PLATFORM_LDFLAGS += -EB +PLATFORM_LDFLAGS += $(ENDIANNESS)

Oh, sorry. I mistake subject... This is not for 2010.12..
Nobuhiro
2010/12/26 Nobuhiro Iwamatsu iwamatsu@nigauri.org:
Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
Signed-off-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org
config.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/config.mk b/config.mk index c6d6f7b..bbcefbe 100644 --- a/config.mk +++ b/config.mk @@ -262,7 +262,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) $(ENDIANNESS) -r -o $@ $1 ,\
rm -f $@; $(AR) rcs $@ )
#########################################################################
1.7.2.3

On Saturday, December 25, 2010 18:02:26 Nobuhiro Iwamatsu wrote:
Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
# 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) $(ENDIANNESS) -r -o $@ $1 ,\
i dont think we should start declaring random new variables with specific purposes. better to split the "u-boot final" LDFLAGS out into their own variable (LDFLAGS_u-boot) and keep LDFLAGS as a "these are the flags that need to be used with $(LD)". -mike

Hi, mike.
2010/12/27 Mike Frysinger vapier@gentoo.org:
On Saturday, December 25, 2010 18:02:26 Nobuhiro Iwamatsu wrote:
Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
# 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) $(ENDIANNESS) -r -o $@ $1 ,\
i dont think we should start declaring random new variables with specific purposes.
I agree. But....
better to split the "u-boot final" LDFLAGS out into their own variable (LDFLAGS_u-boot) and keep LDFLAGS as a "these are the flags that need to be used with $(LD)".
cmd_link_o_target is not used in the last of u-boot (u-boot final) . But this is used in the middle of build. For example, when we make libstubs.o in examples/standalone/Makefile.
: examples/standalone/Makefile ----- 89 90 all: $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF) 91 92 ######################################################################### 93 $(LIB): $(obj).depend $(LIBOBJS) 94 $(call cmd_link_o_target, $(LIBOBJS)) 95 96 $(ELF): -----
Therefore, I think that we have to add a new variable to this.
Best regards, Nobuhiro

On Sunday, December 26, 2010 23:17:39 Nobuhiro Iwamatsu wrote:
2010/12/27 Mike Frysinger vapier@gentoo.org:
On Saturday, December 25, 2010 18:02:26 Nobuhiro Iwamatsu wrote:
Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
# 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) $(ENDIANNESS) -r -o $@ $1 ,\
i dont think we should start declaring random new variables with specific purposes.
I agree. But....
better to split the "u-boot final" LDFLAGS out into their own variable (LDFLAGS_u-boot) and keep LDFLAGS as a "these are the flags that need to be used with $(LD)".
cmd_link_o_target is not used in the last of u-boot (u-boot final) .
this is irrelevant to what i suggested
But this is used in the middle of build. For example, when we make libstubs.o in examples/standalone/Makefile.
: examples/standalone/Makefile
89 90 all: $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF) 91 92 ######################################################################### 93 $(LIB): $(obj).depend $(LIBOBJS) 94 $(call cmd_link_o_target, $(LIBOBJS)) 95 96 $(ELF):
Therefore, I think that we have to add a new variable to this.
no, we dont. do as i suggested: - add $(LDFLAGS_$(@F)) to Makefile:GEN_UBOOT - move -T/-B flags from Makefile:LDFLAGS to Makefile:LDFLAGS_u-boot - move --gc-sections from LDFLAGS to LDFLAGS_u-boot in arch/*/config.mk - add $(LDFLAGS) to cmd_link_o_target
your patch doesnt scale to address all problems -mike

2010/12/27 Mike Frysinger vapier@gentoo.org:
On Sunday, December 26, 2010 23:17:39 Nobuhiro Iwamatsu wrote:
2010/12/27 Mike Frysinger vapier@gentoo.org:
On Saturday, December 25, 2010 18:02:26 Nobuhiro Iwamatsu wrote:
Current cmd_link_o_target function in config.mk does not support the set of the endian.
Some architecture is bi-endian (e.g. mips and sh). Therefore, there is case supporting big endian and little endian with one toolchain. For example, when user builds target of big endian in host of little endian, they need set endian.
# 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) $(ENDIANNESS) -r -o $@ $1 ,\
i dont think we should start declaring random new variables with specific purposes.
I agree. But....
better to split the "u-boot final" LDFLAGS out into their own variable (LDFLAGS_u-boot) and keep LDFLAGS as a "these are the flags that need to be used with $(LD)".
cmd_link_o_target is not used in the last of u-boot (u-boot final) .
this is irrelevant to what i suggested
But this is used in the middle of build. For example, when we make libstubs.o in examples/standalone/Makefile.
: examples/standalone/Makefile
89 90 all: $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF) 91 92 ######################################################################### 93 $(LIB): $(obj).depend $(LIBOBJS) 94 $(call cmd_link_o_target, $(LIBOBJS)) 95 96 $(ELF):
Therefore, I think that we have to add a new variable to this.
no, we dont. do as i suggested: - add $(LDFLAGS_$(@F)) to Makefile:GEN_UBOOT - move -T/-B flags from Makefile:LDFLAGS to Makefile:LDFLAGS_u-boot - move --gc-sections from LDFLAGS to LDFLAGS_u-boot in arch/*/config.mk - add $(LDFLAGS) to cmd_link_o_target
your patch doesnt scale to address all problems
OK, I understood your indication. I will send new patch.
Thanks!
Nobuhiro
participants (2)
-
Mike Frysinger
-
Nobuhiro Iwamatsu