fix Issue 11684 - SIGSEGV with ld.bfd version 2.22

- Don't use zero extended relocations in data segment,
  because we need to write out the whole 8-byte address.

- Data relocations don't depend on PIC.

- This regression was introduced with
  0cba87c6330cd7853139f51448c0f98372fb76d7.
  Before this commit the code still wrote out
  an 8-byte address, so the zero extension worked
  happened to work for <4GB binaries.