
On 12:45 Tue 28 Oct , Ilko Iliev wrote:
Dear Jean-Christophe,
Jean-Christophe PLAGNIOL-VILLARD wrote:
On 22:20 Mon 27 Oct , Wolfgang Denk wrote:
Dear Jean-Christophe PLAGNIOL-VILLARD,
In message 20081027164336.GA1778@game.jcrosoft.org you wrote:
I've found that weak functions are only overwritten if the overwriting function is in a file (not archive) that has strongly-linked symbols. Admittedly, I've only done this with C code but expect that the assembly equivalent works the same way. The idea of using weak functions seems great, but suffers from some pretty cumbersome weaknesses :)
I've found a solution but it's need to update the all u-boot linking method.
Move from AR to LD.
Well, that is exactly what Ben just described.
Which need some work to fit on all boards.
Well, actually only the file lowlevel_init.o needs to be treated that way, so the needed hcanges look not too complicated to me.
I'll send a patch to move cpu/at91 to it only and an example to use it with board dir
Could you try this
diff --git a/config.mk b/config.mk index 5a9334c..0d81ab3 100644 --- a/config.mk +++ b/config.mk @@ -80,6 +80,9 @@ STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump RANLIB = $(CROSS_COMPILE)RANLIB +cmd_link_o_target = $(if $(strip $(2)),\ + $(LD) $(PLATFORM_LDFLAGS) -r -o $(1) $(2) ,\ + rm -f $@; $(AR) rcs $(1))
#########################################################################
diff --git a/cpu/arm926ejs/at91/Makefile b/cpu/arm926ejs/at91/Makefile index 2d2a888..662657c 100644 --- a/cpu/arm926ejs/at91/Makefile +++ b/cpu/arm926ejs/at91/Makefile @@ -36,7 +36,7 @@ OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y)) all: $(obj).depend $(LIB)
$(LIB): $(OBJS) - $(AR) $(ARFLAGS) $@ $(OBJS) + $(call cmd_link_o_target, $@, $(OBJS))
#########################################################################
and modify your board lib build by - $(AR) $(ARFLAGS) $@ $(OBJS) + $(call cmd_link_o_target, $@, $(OBJS))
Best Regards, J.