diff options
| author | Peter Smith <peter.smith@linaro.org> | 2017-06-26 10:22:17 +0000 |
|---|---|---|
| committer | Peter Smith <peter.smith@linaro.org> | 2017-06-26 10:22:17 +0000 |
| commit | 113a59e7db394ba54dafb1e2aafd46d13b212980 (patch) | |
| tree | a45ab8fb70ab3a477e473ab62a55c401c1b26c5d /llvm/lib/Analysis/DemandedBits.cpp | |
| parent | 1158fe9715d1686025ba09d74676c429e60f968d (diff) | |
| download | bcm5719-llvm-113a59e7db394ba54dafb1e2aafd46d13b212980.tar.gz bcm5719-llvm-113a59e7db394ba54dafb1e2aafd46d13b212980.zip | |
[ELF] Define _GLOBAL_OFFSET_TABLE_ symbol relative to .got
On many architectures gcc and clang will recognize _GLOBAL_OFFSET_TABLE_ - .
and produce a relocation that can be processed without needing to know the
value of _GLOBAL_OFFSET_TABLE_. This is not always the case; for example ARM
gcc produces R_ARM_BASE_PREL but clang produces the more general
R_ARM_REL32 to _GLOBAL_OFFSET_TABLE_. To evaluate this relocation
correctly _GLOBAL_OFFSET_TABLE_ must be defined to be the either the base of
the GOT or end of the GOT dependent on architecture..
If/when llvm-mc is changed to recognize _GLOBAL_OFFSET_TABLE_ - . this
change will not be necessary for new objects. However there may still be
old objects and versions of clang.
Differential Revision: https://reviews.llvm.org/D34355
llvm-svn: 306282
Diffstat (limited to 'llvm/lib/Analysis/DemandedBits.cpp')
0 files changed, 0 insertions, 0 deletions

