freebsd-dev/contrib/llvm/tools
Leandro Lupori 1153929465 [PPC64] Backport fix for missing IRELATIVE relocations
This is a backport of LLVM commit 8331f61a51a7a0a1efbf5ed398e181593023d151,
llvm-svn: 353981:

ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an
IRELATIVE where possible.

This is needed in order to make ifuncs work correctly on PPC64.

It fixes an issue with lld, in which it would skip emitting necessary IRELATIVE
relocations.  Without this change, indirect calls to ifuncs would result in a
segmentation fault, in static binaries or when defined in the main binary
(outside shared libraries).

This change also reverts the local
"Preserve relocations against ifuncs when -zifunc-noplt" commit and
replaces it by its upstream version, as part of the merge.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D21102
2019-07-31 16:22:05 +00:00
..
bugpoint Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
clang Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2019-07-20 15:26:21 +00:00
llc Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
lld [PPC64] Backport fix for missing IRELATIVE relocations 2019-07-31 16:22:05 +00:00
lldb Put in a temporary workaround for what is likely a gcc 6 bug (it does 2019-03-06 18:19:27 +00:00
lli Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-ar Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-as Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-bcanalyzer Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-cov Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-cxxdump Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-cxxfilt Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-cxxmap Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-diff Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-dis Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-dwarfdump Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-extract Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-link Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-lto Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-lto2 Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-mc Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-mca Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-modextract Merge llvm trunk r338150, and resolve conflicts. 2018-07-30 16:33:32 +00:00
llvm-nm Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-objcopy Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-objdump Upgrade our copies of clang, llvm, lld, lldb, compiler-rt, libc++, 2019-06-12 21:10:37 +00:00
llvm-pdbutil Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-profdata Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-readobj Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-rtdyld Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-stress Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-symbolizer Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00
llvm-xray Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch 2019-03-04 19:06:51 +00:00
opt Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist. 2019-01-20 11:41:25 +00:00