Dear Wolfgang,

On 2010-11-15 11:54:07, Wolfgang Denk wrote:
> 
> I notice that the patch affects the size of the resulting U-Boot
> images.
> 
> For example:
> 
> Configuring for MiniFAP - Board: TQM5200, Options: MINIFAP
>    text    data     bss     dec     hex filename
>  358144   35208  303248  696600   aa118 ./u-boot      before
>  361340   35824  303332  700496   ab050 ./u-boot      after
> -------------------------------
>               Delta:   +3896 Bytes
> 
> For other boards it's only a few hundred bytes, but why do we see
> such big increase here?

With archive library linking, definitions that were not used were not
included in the final binary.  This changes with partial linking (like
it would if we passed the --whole-archive flag to ld).

For this board (TQM5200), I am not sure exactly what happens yet, but
this looks suspect to me:

# ls -l ./post/lib_powerpc/fpu/mul-subnormal-single-1.[co] 
-rw-r--r-- 1 sebc sebc  2309 Nov  1 21:33 
./post/lib_powerpc/fpu/mul-subnormal-single-1.c
-rw-r--r-- 1 sebc sebc 30288 Nov 15 12:09 
./post/lib_powerpc/fpu/mul-subnormal-single-1.o

I would expect the object file to be much smaller based on source code
size.

> MPC8xx boards break with long lists of multiple definitions of
> symbols, like that:
> 
> Configuring for FPS860L board...
> lib/libgeneric.o: In function `vsprintf':
> /home/wd/git/u-boot/work/lib/vsprintf.c:480: multiple definition of `vsprintf'
> lib/vsprintf.o:/home/wd/git/u-boot/work/lib/vsprintf.c:480: first defined here
> lib/libgeneric.o: In function `ustrtoul':
> /home/wd/git/u-boot/work/lib/vsprintf.c:74: multiple definition of `ustrtoul'
> lib/vsprintf.o:/home/wd/git/u-boot/work/lib/vsprintf.c:74: first defined here
> lib/libgeneric.o: In function `simple_strtol':
> /home/wd/git/u-boot/work/lib/vsprintf.c:67: multiple definition of 
> `simple_strtol'
> lib/vsprintf.o:/home/wd/git/u-boot/work/lib/vsprintf.c:67: first defined here
> lib/libgeneric.o: In function `inflate':
> /home/wd/git/u-boot/work/lib/zlib.c:1385: multiple definition of `inflate'
> lib/zlib.o:/home/wd/git/u-boot/work/lib/zlib.c:1385: first defined here
> lib/libgeneric.o: In function `inflate_fast':
> /home/wd/git/u-boot/work/lib/zlib.c:448: multiple definition of `inflate_fast'
> lib/zlib.o:/home/wd/git/u-boot/work/lib/zlib.c:448: first defined here
> ...
> 
> Have you seen that, too?

No, I had not seen that.  It seems that some bits of U-Boot get included
twice in this case... I will investigate this after looking a bit more
at the code size increase for the TQM5200 board.

-- 
Sebastien
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to