All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastien Carlier <sebastien.carlier@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] Weak symbols: request for comments
Date: Fri, 05 Nov 2010 13:40:59 +0100	[thread overview]
Message-ID: <4CD3FB5B.7060300@gmail.com> (raw)
In-Reply-To: <20101105121407.654B412A81E2@gemini.denx.de>

Dear Wolfgang,

On 11/05/2010 01:14 PM, Wolfgang Denk wrote:
>> 1.1) Stop using weak symbols; use pre-initialized function pointers
>>        instead (possibly grouped in a struct, for cleanliness).
>>        This has the benefit of offering a clear interface and being
>>        independent of toolchain details.
>>      
> And where would the "pre-initialized function pointers" come from?
> Without adding a hell of #ifdef's ?
>    

It would not be pretty, and, as pointed out by Joakim Tjernlund, it 
would not work before relocation.

>> 1.2) Use regular (non-weak) extern declarations for overridable stuff;
>>        collect all default weak symbols into a separate library archive,
>>        to be supplied last to the linker.
>>      
> Not realy practicable, as the code is distributed all over the place,
> and should remain where it logically belongs.
>    

Each module could have its own "defaults.c" for overridable 
implementations, and the build system could collect all of these.  It is 
not a pain-free solution.

>> 1.3) Stop using a library archive for the board specific stuff.
>>        Instead, collect and link all the object files to produce the
>>        output binary.  Only Makefile changes are involved, but correct
>>        behavior depends on all boards doing the right thing.
>>      
> Close. I think stop using a library archives and do what Linux does
> instead is the way to go.
>    

Partial linking with ld -r ?  That does seem like a fairly simple change.

Regards,

Sebastien Carlier

  reply	other threads:[~2010-11-05 12:40 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-05 10:39 [U-Boot] Weak symbols: request for comments Sebastien Carlier
2010-11-05 11:01 ` Andre Schwarz
2010-11-05 11:16 ` Reinhard Meyer
2010-11-05 12:16   ` Sebastien Carlier
2010-11-05 12:23     ` Wolfgang Denk
2010-11-05 12:57       ` Sebastien Carlier
2010-11-06 14:28         ` [U-Boot] [PATCH] Switch from library archives to partial linking Sebastien Carlier
2010-11-06 17:21           ` Albert ARIBAUD
2010-11-07 14:16             ` Peter Tyser
2010-11-07 15:11               ` Sebastien Carlier
2010-11-07 15:30                 ` Andreas Bießmann
2010-11-07 16:18                   ` Sebastien Carlier
2010-11-07 16:54                     ` Andreas Bießmann
2010-11-10  4:41                 ` Mike Frysinger
2010-11-07 21:46           ` Wolfgang Denk
2010-11-07 22:24             ` Peter Tyser
2010-11-07 22:33               ` Wolfgang Denk
2010-11-05 12:30     ` [U-Boot] Weak symbols: request for comments Reinhard Meyer
2010-11-05 11:21 ` Andreas Bießmann
2010-11-05 12:04   ` Joakim Tjernlund
2010-11-05 12:14 ` Wolfgang Denk
2010-11-05 12:40   ` Sebastien Carlier [this message]
2010-11-05 15:00   ` Sebastien Carlier

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=4CD3FB5B.7060300@gmail.com \
    --to=sebastien.carlier@gmail.com \
    --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.