On 04/26/2012 01:53 AM, Joakim Tjernlund wrote: > Scott Wood <scottw...@freescale.com> wrote on 2012/04/25 21:01:00: >> >> On 04/18/2012 05:07 AM, Joakim Tjernlund wrote: >>> Your linker file is buggy I think. I found u-boot-nand_spl.lds, is that the >>> one? >> >> That's the one for the SPL part. > > OK, good. > >> >>> Check out that files reloc part: >>> .reloc : { >>> _GOT2_TABLE_ = .; >>> KEEP(*(.got2)) >>> _FIXUP_TABLE_ = .; >>> KEEP(*(.fixup)) >>> } >>> __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; >>> __fixup_entries = (. - _FIXUP_TABLE_) >> 2; >>> >>> Compare that with(from u-boot.lds): >>> .reloc : >>> { >>> _GOT2_TABLE_ = .; >>> KEEP(*(.got2)) >>> KEEP(*(.got)) >>> PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4); >>> _FIXUP_TABLE_ = .; >>> KEEP(*(.fixup)) >>> } >>> __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1; >>> __fixup_entries = (. - _FIXUP_TABLE_) >> 2; >> >> I notice a difference between u-boot.lds and u-boot-nand.lds -- the >> latter (used for the main part of U-Boot when loaded from SPL) has: >> >>> .reloc : >>> { >>> KEEP(*(.got)) >>> _GOT2_TABLE_ = .; >>> KEEP(*(.got2)) >>> _FIXUP_TABLE_ = .; >>> KEEP(*(.fixup)) >>> } >>> __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; >>> __fixup_entries = (. - _FIXUP_TABLE_) >> 2; >> >> Is this wrong as well? > > Yes, I think so. This one does not care about the .got entries at all so I > suspect > never gcc's wont work.
Thanks. I'm not entirely sure about the _GLOBAL_OFFSET_TABLE_ stuff, though -- what's wrong with the simpler version that uses _FIXUP_TABLE_? -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot