From: Albert ARIBAUD <albert.aribaud@free.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] Switch from archive libraries to partial linking
Date: Fri, 19 Nov 2010 07:36:05 +0100 [thread overview]
Message-ID: <4CE61AD5.50900@free.fr> (raw)
In-Reply-To: <20101118223319.ECB2814E647@gemini.denx.de>
Le 18/11/2010 23:33, Wolfgang Denk a ?crit :
> Dear Albert ARIBAUD,
>
> In message<4CE5A3F1.50304@free.fr> you wrote:
>>
>>> 58 arch/powerpc/cpu/mpc8xx/start.o (.text)
>>> 59 arch/powerpc/cpu/mpc8xx/traps.o (.text)
>>> 60 common/dlmalloc.o (.text)
>>> 61 arch/powerpc/lib/ppcstring.o (.text)
>>> 62 lib/vsprintf.o (.text)
>>> 63 lib/crc32.o (.text)
>>> 64 lib/zlib.o (.text)
>>> 65 arch/powerpc/lib/cache.o (.text)
>>> 66
>>> 67 . = DEFINED(env_offset) ? env_offset : .;
>>> 68 common/env_embedded.o (.ppcenv)
> ....
>> Are you sure of this? From
>> <http://sourceware.org/binutils/docs-2.20/ld/Input-Section-Basics.html#Input-Section-Basics>,
>> specifying a file name in the linker file *and* on the command line
>> should not lead to a double inclusion of the object file:
>
> I'm sure that I see the errors.
>
> I see two possible reasons: 1) whay you describe is a new feature in
> binutils 2.20; I'm currently using 2.17.50 (with ELDk 4.2); or 2) the
> linker does not realize it because it's actually different file names:
> for example, vsprintf() gets included in the linker script directly
> through lib/vsprintf.o, and throught he command line as
> lib/libgeneric.o ==> two different file names.
Most probably 2); mentioning a file in the linker script either with or
without mentioning it on the command line has certainly been done for
some time, so I doubt the feature is new; and certainly the doc is about
files, not symbols in different files.
And, to get back to possible solutions, I don't know that the linker can
map selected symbols onto specific regions; it can only place whole
object files.
The simplest, though not cleanest, way I can think of is to put
conditionals to not compile vsprintf() in lib/generic, and set those
conditions from the board config file -- and same for anything else.
Ugly, but it will work.
A second solution, a bit more intrusive, would be to split lib/generic
in two files; a "small" one which could be mapped in the small area, and
the rest, which would map with the rest of the image.
> Best regards,
>
> Wolfgang Denk
>
Amicalement,
--
Albert.
next prev parent reply other threads:[~2010-11-19 6:36 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 22:04 [U-Boot] [PATCH] Switch from archive libraries to partial linking Sebastien Carlier
2010-11-08 22:10 ` Graeme Russ
2010-11-08 22:34 ` Sebastien Carlier
2010-11-09 6:17 ` Andreas Bießmann
2010-11-09 9:15 ` Andre Schwarz
2010-11-09 17:44 ` [U-Boot] [PATCH v2] " Sebastien Carlier
2010-11-10 8:35 ` Andre Schwarz
2010-11-09 9:48 ` [U-Boot] [PATCH] " Graeme Russ
2010-11-09 11:29 ` Stefano Babic
2010-11-10 6:57 ` Mike Frysinger
2010-11-10 8:01 ` Andreas Bießmann
2010-11-10 8:07 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-10 8:55 ` Mike Frysinger
2010-11-10 12:24 ` Sebastien Carlier
2010-11-10 21:07 ` Mike Frysinger
2010-11-15 7:51 ` Wolfgang Denk
2010-11-15 8:09 ` Sebastien Carlier
2010-11-15 10:54 ` Wolfgang Denk
2010-11-15 11:33 ` Mike Frysinger
2010-11-15 12:38 ` Mike Frysinger
2010-11-15 12:42 ` Mike Frysinger
2010-11-15 12:52 ` Mike Frysinger
2010-11-15 11:35 ` [U-Boot] [PATCH v4] " Sebastien Carlier
2010-11-15 12:13 ` Sebastien Carlier
2010-11-15 12:39 ` Mike Frysinger
2010-11-16 14:58 ` Detlev Zundel
2010-11-16 16:33 ` Mike Frysinger
2010-11-17 12:30 ` Detlev Zundel
2010-11-17 13:30 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-17 13:50 ` Wolfgang Denk
2010-11-17 18:06 ` Mike Frysinger
2010-11-17 19:53 ` Sebastien Carlier
2010-11-17 22:19 ` Mike Frysinger
2010-11-18 21:44 ` Wolfgang Denk
2010-11-18 22:08 ` Albert ARIBAUD
2010-11-18 22:33 ` Wolfgang Denk
2010-11-19 6:36 ` Albert ARIBAUD [this message]
2010-11-19 8:03 ` Wolfgang Denk
2010-11-20 0:07 ` Mike Frysinger
2010-11-20 8:38 ` Wolfgang Denk
2010-11-20 8:48 ` Albert ARIBAUD
2010-11-20 9:19 ` Mike Frysinger
2010-11-19 8:04 ` Sebastien Carlier
2010-11-19 7:50 ` Sebastien Carlier
2010-11-19 8:08 ` Wolfgang Denk
2010-11-19 8:34 ` Sebastien Carlier
2010-11-19 11:11 ` Wolfgang Denk
2010-11-19 11:40 ` Albert ARIBAUD
2010-11-19 11:48 ` Wolfgang Denk
2010-11-19 12:11 ` Albert ARIBAUD
2010-11-19 12:33 ` Sebastien Carlier
2010-11-19 12:38 ` Albert ARIBAUD
2010-11-19 13:02 ` Sebastien Carlier
2010-11-19 13:07 ` Reinhard Meyer
2010-11-19 13:33 ` Albert ARIBAUD
2010-11-19 13:40 ` Wolfgang Denk
2010-11-19 12:55 ` Wolfgang Denk
2010-11-19 8:10 ` Mike Frysinger
2010-11-15 19:44 ` Mike Frysinger
2010-11-15 11:44 ` [U-Boot] [PATCH] " Mike Frysinger
2011-01-24 20:54 ` Timur Tabi
2011-01-25 0:03 ` Kumar Gala
2011-01-25 6:36 ` Wolfgang Denk
2011-01-25 8:55 ` Kumar Gala
2011-01-25 16:40 ` Timur Tabi
2011-01-25 17:49 ` Kumar Gala
2011-01-25 18:30 ` Timur Tabi
2011-01-25 19:02 ` Wolfgang Denk
2011-01-25 20:05 ` Scott Wood
2011-01-25 20:19 ` Wolfgang Denk
2011-01-25 20:37 ` Scott Wood
2011-01-25 21:13 ` Wolfgang Denk
2011-01-26 5:22 ` Kumar Gala
2011-01-26 17:26 ` Scott Wood
2011-01-25 18:27 ` Wolfgang Denk
2011-01-25 18:29 ` Timur Tabi
2011-01-25 18:54 ` Wolfgang Denk
2011-01-25 18:57 ` Timur Tabi
2011-01-25 19:05 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CE61AD5.50900@free.fr \
--to=albert.aribaud@free.fr \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.