[U-Boot] [PATCH v3] Switch from archive libraries to partial linking

Wolfgang Denk
2010-11-15T10:54:07Z

Dear Sebastien Carlier,

In message <20101115080950.GA26767@safe.home.local> you wrote:
>
> I just uploaded the revised patch here:
>
> http://www.denx.de/wiki/pub/U-Boot/TooBigPatches/0001-Switch-from-archive-libraries-to-partial-linking-v4.patch
>
> Version 4:
> Bring in Linux comment for cmd_link_o_target.
> Fix drivers/qe/Makefile to build libqe.o, not qe.o.
>
> I pulled the latest changes before making the patch and there was no
> conflict, but please let me know if you see anything wrong with it.

Thanks a lot.

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?

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?

Best regards,
Viele Gr??e,

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 at denx.de
"He was so narrow minded he could see through a keyhole with both
eyes ..."