aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2021-11-15 17:15:58 -0800
committerPirama Arumuga Nainar <pirama@google.com>2021-11-16 11:37:00 -0800
commit078279ff017f799d9cb8fe515808fcc518fe0c41 (patch)
tree4fbd7105f991100c0dec4fb3caea9a9c830b7931 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
parentea8cdf322f3962765218829a0aece71e0bb5e989 (diff)
downloadllvm-078279ff017f799d9cb8fe515808fcc518fe0c41.zip
llvm-078279ff017f799d9cb8fe515808fcc518fe0c41.tar.gz
llvm-078279ff017f799d9cb8fe515808fcc518fe0c41.tar.bz2
[compiler-rt/profile] Reland mark __llvm_profile_raw_version as hidden
Since libclang_rt.profile is added later in the command line, a definition of __llvm_profile_raw_version is not included if it is provided from an earlier object, e.g. from a shared dependency. This causes an extra dependence edge where if libA.so depends on libB.so and both are coverage-instrumented, libA.so uses libB.so's definition of __llvm_profile_raw_version. This leads to a runtime link failure if the libB.so available at runtime does not provide this symbol (but provides the other dependent symbols). Such a scenario can occur in Android's mainline modules. E.g.: ld -o libB.so libclang_rt.profile-x86_64.a ld -o libA.so -l B libclang_rt.profile-x86_64.a libB.so has a global definition of __llvm_profile_raw_version. libA.so uses libB.so's definition of __llvm_profile_raw_version. At runtime, libB.so may not be coverage-instrumented (i.e. not export __llvm_profile_raw_version) so runtime linking of libA.so will fail. Marking this symbol as hidden forces each binary to use the definition of __llvm_profile_raw_version from libclang_rt.profile. The visiblity is unchanged for Apple platforms where its presence is checked by the TAPI tool. Reviewed By: MaskRay, phosek, davidxl Differential Revision: https://reviews.llvm.org/D111759
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h')
0 files changed, 0 insertions, 0 deletions