Implement IFUC support for chromeos arm gold linker.

We (chromeos toolchain team) are to switch default linker to gold
linker for arm, the origin gold does not support IFUNC for arm
backend, so what we firstly did was to implement this for arm gold.

Originally implemented for trunk, back-port it here. Since everything
is using bfd (except gtalk and chrome, which could not use any ifunc
symbols, otherwise, the binary would be corrupted) , the impact of
this patch is minimal.

The trunk patch here - https://sourceware.org/ml/binutils/2015-01/msg00258.html

BUG=chromium:457723
TEST=Build everything (without switch to gold by default), all perfv2,
bootperf, and basic gold arm ifunc unit tests, cbuildbot - chromiumos-sdk daisy-full
Change-Id: Icbd119208e78aeb15fcbab1db10127c1cb7db6cf
Reviewed-on: https://chromium-review.googlesource.com/248122
Reviewed-by: Luis Lozano <llozano@chromium.org>
Commit-Queue: Han Shen <shenhan@chromium.org>
Tested-by: Han Shen <shenhan@chromium.org>
3 files changed