This patch adds IFUNC support for arm gold backend.

This is a feature required in chromeos arm development work.

Tested:
1) Built passed all-gold on x86_64 machine
2) Tested with basic gold aarch64 ifunc unittests -
   a) global ifunc, statically/non-statically linked
   b) local ifunc, statically/non-statically linked
   c) global/local, other shared library routine mixed,
   statically/non-statically linked
   d) arm/thumb mode ifunc
   e) linking chrome browser passed
This commit is contained in:
Han Shen 2015-01-29 10:00:46 -08:00
parent 716db898b7
commit fa89cc82f5
6 changed files with 613 additions and 50 deletions

View file

@ -192,11 +192,12 @@ enum
R_ARM_PRIVATE_14 = 126,
R_ARM_PRIVATE_15 = 127,
R_ARM_ME_TOO = 128, // Obsolete
R_ARM_THM_TLS_DESCSEQ16 = 129,// Static Thumb16
R_ARM_THM_TLS_DESCSEQ16 = 129,// Static Thumb16
R_ARM_THM_TLS_DESCSEQ32 = 130,// Static Thumb32
// 131 - 139 Unallocated
// 140 - 159 Dynamic Reserved for future allocation
// 160 - 255 Unallocated
R_ARM_IRELATIVE = 160, // Dynamic
// 161 - 255 Unallocated
};
// e_flags values used for ARM. We only support flags defined in AAELF.