[U-Boot] [PATCH v3 2/2] MIPS: Stop building position independent code

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Mon Jul 31 10:52:57 UTC 2017


2017-07-30 18:04 GMT+02:00 Álvaro Fernández Rojas <noltari at gmail.com>:
>
>
> El 30/07/2017 a las 16:05, Daniel Schwierzeck escribió:
>>
>>
>> Am 30.07.2017 um 14:27 schrieb Álvaro Fernández Rojas:
>>> I've been a bit busy lately and I couldn't test this until now, but I have to say that this commit breaks u-boot bmips support :(
>>>
>>> BTW, I tried this on several bmips boards (one of them is a Netgear CG3100D, which uses u-boot.bin instead of u-boot.elf)
>>>
>>> Do you have any idea on what could be hapenning?
>>>
>>
>> maybe you need to specify "--emit-relocs" too when linking u-boot.elf
>> from u-boot-elf.o. But u-boot-elf.o should already contain the correct
>> .reloc section with the updated relocation entries so you don't need to
>> rerun the reloc-tool on u-boot.elf.
>>
>
> I tried that and it doesn't work.
> However, I've just found out that if I remove the relocs call it boots again...
> https://gist.github.com/Noltari/ce3a6a9dda69e74caf7ba33c9c8ade9a

I wonder how this can work. Even the u-boot.elf now contains
position-dependent code so that an update of the relocation entries is
required there too. Without the updated entries, U-Boot can't execute
after jumping from relocate_code() to board_init_r(). Did you use a
clean build if U-Boot?

-- 
- Daniel


More information about the U-Boot mailing list