[PATCH] D26133: [ELF] Allow relative relocations to absolute symbols in PIC
Rafael Avila de Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 7 07:21:30 PST 2017
Why is this correct? Testcase?
Cheers,
Rafael
Petr Hosek via Phabricator <reviews at reviews.llvm.org> writes:
> phosek updated this revision to Diff 87340.
>
> Repository:
> rL LLVM
>
> https://reviews.llvm.org/D26133
>
> Files:
> ELF/Relocations.cpp
>
>
> Index: ELF/Relocations.cpp
> ===================================================================
> --- ELF/Relocations.cpp
> +++ ELF/Relocations.cpp
> @@ -351,6 +351,8 @@
> // between start of a function and '_gp' value and defined as absolute just
> // to simplify the code.
> if (AbsVal && RelE) {
> + if (Body.isLocal() || Body.getVisibility() == STV_HIDDEN)
> + return true;
> if (Body.isUndefined() && !Body.isLocal() && Body.symbol()->isWeak())
> return true;
> if (&Body == ElfSym<ELFT>::MipsGpDisp)
>
>
> Index: ELF/Relocations.cpp
> ===================================================================
> --- ELF/Relocations.cpp
> +++ ELF/Relocations.cpp
> @@ -351,6 +351,8 @@
> // between start of a function and '_gp' value and defined as absolute just
> // to simplify the code.
> if (AbsVal && RelE) {
> + if (Body.isLocal() || Body.getVisibility() == STV_HIDDEN)
> + return true;
> if (Body.isUndefined() && !Body.isLocal() && Body.symbol()->isWeak())
> return true;
> if (&Body == ElfSym<ELFT>::MipsGpDisp)
More information about the llvm-commits
mailing list