diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2016-04-08 14:10:41 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2016-04-08 14:10:41 +0000 |
commit | 15cba9e7e543ae1593f2e62ed4166c446cabbeb7 (patch) | |
tree | 46926b683ee892f8d8e7f5359dea887056d06d20 /lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py | |
parent | 954ba21f852534c24dc1caf023d957adc06eef20 (diff) | |
download | bcm5719-llvm-15cba9e7e543ae1593f2e62ed4166c446cabbeb7.tar.gz bcm5719-llvm-15cba9e7e543ae1593f2e62ed4166c446cabbeb7.zip |
[lld] [ELF/AARCH64] Fix dynamic relocation from PIC GOT access
This patch fixes dynamic relocation creation from GOT access in dynamic
objects on aarch64. Current code creates a plt relative one
(R_AARCH64_JUMP_SLOT) instead of a got relative (R_AARCH64_GLOB_DAT).
It leads the programs fails with:
$ cat t.cc
std::string test = "hello...\n";
int main ()
{
printf ("%s\n", test.c_str());
return 0;
}
$ clang++ t.cc -fpic -o t
$ ./t
hello...
Segmentation fault (core dumped)
Due the fact it will try to access the plt instead of the got for
__cxa_atexit registration for the std::string destruction. It will
lead in a bogus function address in atexit.
llvm-svn: 265784
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py')
0 files changed, 0 insertions, 0 deletions