
Dear Daniel Schwierzeck,
2012/10/15 Marek Vasut marex@denx.de:
GEN_UBOOT = \
UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \ sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uni q` ;\
cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F))
$$UNDEF_SYM $(__OBJS) \ + UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \ + sed -n -e 's/.*($(SYM_PREFIX)__u_boot_list_.*)/-u\1/p'|sort|uniq`;\
this must be:
sed -n -e
's/.*($(SYM_PREFIX)_u_boot_list_.*)/-u\1/p'|sort|uniq`;\
I suspect this might break blackfin.
no it is already broken without this change. I also tested Blackfin but forgot it to mention. Blackfin explicitely sets SYM_PREFIX:=_ so you will finally get __u_boot_list_.*.
Which is what I _want_ to get.
otherwise $UNDEF_LST is always empty which breaks at least all MIPS boards because all _uboot_list_* symbols are discarded by the linker. I noticed that on ARM and PowerPC the content of $UNDEF_LST does not matter at all because those symbols are always linked into the final binary.
About time to fix mips ... or throw it away altogether, until it learns to do stuff right (incl. relocation).
it's not only MIPS, Blackfin has the same problem. Propably other 'exotic' archs too ;)
And that's a problem -- we have to support so much legacy crap because of these arches :-(
Best regards, Marek Vasut