On Tue, Jan 29, 2008 at 07:12:10PM -0500, Mike Frysinger wrote:
> On Tuesday 29 January 2008, Wolfgang Denk wrote:
> > In message <[EMAIL PROTECTED]> you wrote:
> > > unfortunately, using weak symbols and overriding elsewhere doesnt look
> > > like it's possible currently due to the way ld searches archives.  for
> > > example, if
> >
> > ???
> >
> > > ld will pick the weak symbol provided by libcommon.a even though a strong
> > > symbol is also available in libblackfin.a :(
> >
> > That should never happen. What is your toolchain?
> 
> read the binutils mailing list.  this is the expected behavior of ld.
> 
> http://sourceware.org/ml/binutils/2008-01/msg00301.html

Overriding weak with strong symbols works just fine, however
in your case ld has no reason to even look at your override,
since it already has a (weak) definition for do_bootelf_setup().

Thus the solution for your problem is to give ld a reason
to pull in your do_bootelf_setup() definition. There are
two ways:

- explicitly list the .o file on the linker command line,
  i.e. add it to $(OBJS) or $(PLATFORM_LIBS) instead
  of libblackfin.a

- put the do_bootelf_setup() definition in a .o file
  along with some other code you know will be pulled in,
  e.g. add it to lib_blackfin/cache.c instead of putting
  it in its own file


HTH,
Johannes

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to