[PATCH ARC 2/5]: 24 bit reloc and overflow detection fix

Cupertino Miranda Cupertino.Miranda@synopsys.com
Mon Apr 4 12:49:00 GMT 2016
Hi all,

Please review.
This patch fixes 24 bit relocs based by selecting the right replacement
function depending on the endianess of the target.

Fixed overflow detection on 32 bit host execution. Because relocation
values were done using an unsigned type, right shifts used to align the
relocation value where performed non arithmetically. This shift cleared
the most significant bits and made relocation value to be a big positive
value, instead of a small negative one.

Best regards,
Cupertino

bfd/ChangeLog:

Cupertino Miranda  <cmiranda@synopsys.com>
    elf32-arc.c: Defined macro DEBUG.
    (name_for_global_symbol): Changed assert.
    (get_replace_function): Created.:
    (struct arc_relocation_data): Changed to signed types.
    (defines S, L, P, PDATA): Casted to signed type.
    (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise.
    (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed.
    (arc_do_relocation): Changed.

include/ChangeLog:

Cupertino Miranda  <cmiranda@synopsys.com>
    opcode/arc-func.h (replace_bits24): Changed.
    (replace_bits24_be): Created.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-24bit-relocs_and_overflow.patch
Type: text/x-patch
Size: 7126 bytes
Desc: 0002-24bit-relocs_and_overflow.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20160404/002ddd5a/attachment.bin>


More information about the Binutils mailing list