[U-Boot] [PATCH] PowerPC: Change -fpic flag to -fPIC flag in the config.mk
Scott Wood
scottwood at freescale.com
Thu Apr 26 23:26:52 CEST 2012
On 04/26/2012 01:53 AM, Joakim Tjernlund wrote:
> Scott Wood <scottwood at 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
More information about the U-Boot
mailing list