This patch is a piece of D99360.
The patch adds ELF notes into SHT_NOTE sections of ELF offload images passed to clang-offload-wrapper.
The new notes use a null-terminated "LLVMOMPOFFLOAD" note name. There are currently three types of notes:
VERSION: a string (not null-terminated) representing the ELF offload image structure. The current version '1.0' does not put any restrictions on the structure of the image. If we ever need to come up with a common structure for ELF offload images (e.g. to be able to analyze the images in libomptarget in some standard way), then we will introduce new versions.
PRODUCER: a vendor specific name of the producing toolchain. Upstream LLVM uses "LLVM" (not null-terminated).
PRODUCER_VERSION: a vendor specific version of the producing toolchain. Upstream LLVM uses LLVM_VERSION_STRING with optional <space> LLVM_REVISION.
All three notes are not mandatory currently.
clang-tidy: warning: twine variables are prone to use-after-free bugs [llvm-twine-local]
not useful