diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2024-03-06 20:49:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-06 20:49:12 +0100 |
commit | 15b7b3182cc28f4f0b950bd73d931caa27b833ec (patch) | |
tree | 506822fb16f553c6c0b1251f95bf32b47689c5a4 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f95a76391c527ba23574cb1d8d8803c9a1d0b7c4 (diff) | |
download | llvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.zip llvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.tar.gz llvm-15b7b3182cc28f4f0b950bd73d931caa27b833ec.tar.bz2 |
[libomptarget] Support BE ELF files in plugins-nextgen (#83976)
Code in plugins-nextgen reading ELF files is currently hard-coded to
assume a 64-bit little-endian ELF format. Unfortunately, this assumption
is even embedded in the interface between GlobalHandler and Utils/ELF
routines, which use ELF64LE types.
To fix this, I've refactored the interface to push all ELF specific
types into Utils/ELF. Specifically, this patch removes both the
getSymbol and getSymbolAddress routines and replaces them with a
single findSymbolInImage, which gets a StringRef identifying the
raw object file image as input, and returns a StringRef covering
the data addressed by the symbol (address and size) if found, or
std::nullopt otherwise.
This allows properly templating over multiple ELF format variants inside
Utils/ELF; specifically, this patch adds support for 64-bit big-endian
ELF files in addition to 64-bit little-endian files.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions