aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorMarco Elver <elver@google.com>2024-07-08 17:07:00 +0200
committerGitHub <noreply@github.com>2024-07-08 17:07:00 +0200
commitf5b9e11eb8ada0e7cc292f9ecd29a220d1265084 (patch)
treefe5a32137b690e9bc706028dedb30814ec67db76 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent385118644ccabe27a634804c7db60734746c170f (diff)
downloadllvm-f5b9e11eb8ada0e7cc292f9ecd29a220d1265084.zip
llvm-f5b9e11eb8ada0e7cc292f9ecd29a220d1265084.tar.gz
llvm-f5b9e11eb8ada0e7cc292f9ecd29a220d1265084.tar.bz2
[SanitizerBinaryMetadata] Fix multi-version sanitizer metadata (#97848)
It should be valid to combine TUs that have different versions of sanitizer metadata. However, this had not been possible due to giving sanitizer metadata sections, constructors, and destructors (that call callbacks) the same name for different versions. This would then result in the linker attempting to merge sections that contain metadata of different versions, as well as picking any one of the constructors or destructors due to having the same COMDAT key. The end result is that consumers of this data would end up interpreting the metadata incorrectly. Although combining old and new versions is not recommended, more realistic is combining TUs that have been compiled with different target code models (which are also encoded in the sanitizer metadata version). To fix, and properly support multi-version sanitizer metadata, attach the version to section names and internal constructor and destructor names. The ABI remains unchanged.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions