[U-Boot] [PATCH RFC 3/3] arm920t: do not relocate NULL pointer

Albert ARIBAUD
2010-11-30T09:02:45Z

Le 30/11/2010 09:47, Joakim Tjernlund a ?crit :
>>
>> Le 30/11/2010 08:06, Andreas Bie?mann a ?crit :
>>> Signed-off-by: Andreas Bie?mann<andreas.devel@googlemail.com>
>>
>>> + cmp r1, #0 /* symbol == NULL ? */
>>> + beq fixnext
>>
>> Nak. Don't hide a null pointer. NULL pointers are *not* relocated, since
>> they are a constant. If a NULL ends up in relocation tables, that is
>> because of a corruption *or* because it was to be relocated, and should
>> thus never be ignored.
>
> Depends, if the same routine is used for relocating fixups you need
> this test. Undefined weaks will generate a NULL fixup entry.

Understood.

Weren't there an effort to not use weak symbols any more?

If not, then a comment *must* be added to indicate that weak symbols can
cause zero-filled reloc entries (I would suggest saying 'zero-filled'
rather than 'NULL', because obviously readers will think of stdio's NULL).

We could possibly even send out a diagnostic message, but that'll be
when the relocation code is turned to C language; I don't want to see
asm code that calls printf.

> Jocke

Amicalement,
--
Albert.