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

Albert ARIBAUD albert at aribaud.net
Tue Nov 30 10:02:45 CET 2010


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 at 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.


More information about the U-Boot mailing list