aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc
diff options
context:
space:
mode:
authorRyan Prichard <rprichard@google.com>2018-06-28 00:21:50 (GMT)
committerRyan Prichard <rprichard@google.com>2018-06-28 21:03:10 (GMT)
commit4089f56e6c7438eb98cb86c249cf0c01e22219c5 (patch)
tree80affcdf249524cf1414767b8eb40f00ca8acd0b /gcc-4.9/gcc
parent81788f3d99d2c5952fa9a6d673e8d6a53b76d511 (diff)
downloadtoolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.zip
toolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.tar.gz
toolchain_gcc-4089f56e6c7438eb98cb86c249cf0c01e22219c5.tar.bz2
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')
0 files changed, 0 insertions, 0 deletions