[U-Boot-Users] [Patch] Disable icache before call the first line of kernel in do_bootelf().

Johannes Stezenbach js at sig21.net
Wed Jan 30 16:36:04 CET 2008


On Tue, Jan 29, 2008 at 07:12:10PM -0500, Mike Frysinger wrote:
> On Tuesday 29 January 2008, Wolfgang Denk wrote:
> > In message <200801282114.14393.vapier at gentoo.org> 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




More information about the U-Boot mailing list