[binutils] Special processing of R_X86_64_32 relocations

R_X86_64_32 relocations in NaCl64 play the same role as R_X86_64_64 in native x86_64. They should be rewritten in case relocated symbol is hidden and will not exist in statically linked binary.

R_X86_64_64 are rewritten into R_X86_64_RELATIVE using the absolute value of the symbol. Unfortunately we don't have 32-bit alternative, thus we change relocation to use section instead of symbol. Usually this rewrite produces buggy relocations (why? there is corresponding comment in bfd, but it does not explain much), but in our special case we just create valid relocations.

BUG=http://code.google.com/p/nativeclient/issues/detail?id=1095
TEST=

Review URL: http://codereview.chromium.org/4128004
1 file changed
tree: adcee0d937084ce0171d4106dff50d26e5d73446
  1. binutils/
  2. gcc/
  3. gdb/
  4. newlib/