aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/ada/g-diopit.adb
diff options
context:
space:
mode:
authorRyan Prichard <rprichard@google.com>2018-06-27 17:21:50 -0700
committerRyan Prichard <rprichard@google.com>2018-06-28 14:03:10 -0700
commit4089f56e6c7438eb98cb86c249cf0c01e22219c5 (patch)
tree80affcdf249524cf1414767b8eb40f00ca8acd0b /gcc-4.9/gcc/ada/g-diopit.adb
parent81788f3d99d2c5952fa9a6d673e8d6a53b76d511 (diff)
downloadtoolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.tar.gz
toolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.tar.bz2
toolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.zip
libgcc: work around old Bionic loader bug
dl_iterate_phdr returns a 0 load_base for a PIE executable when it should return the address where the executable was loaded (e.g. the load base or load bias). Recalculate the load base when it is zero. This recalculation should work on any ELF file with a PT_PHDR segment -- it will calculate 0 for a non-PIE executable. The load base is added to an ELF virtual address to produce a run-time address. Recalculate it by subtracting the PT_PHDR's virtual address from its run-time address. Bug: https://github.com/android-ndk/ndk/issues/505 Test: manual Test: run NDK tests (./checkbuild.py && ./run_tests.py) Change-Id: I7de46c07a8b04e794b59f07b4d554238cfd6d5d9
Diffstat (limited to 'gcc-4.9/gcc/ada/g-diopit.adb')
0 files changed, 0 insertions, 0 deletions