[llvm] 0f252e7 - [ORC][MachO] Allow multiple LC_BUILD_VERSION commands.
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 14 09:45:34 PDT 2024
Author: Lang Hames
Date: 2024-03-14T09:45:28-07:00
New Revision: 0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
URL: https://github.com/llvm/llvm-project/commit/0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
DIFF: https://github.com/llvm/llvm-project/commit/0f252e7bd838d201bad89cda5b0e40a1fdeb96ca.diff
LOG: [ORC][MachO] Allow multiple LC_BUILD_VERSION commands.
No testcase: I'm still thinking about the best way to test this.
Added:
Modified:
llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h b/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
index e928faf4788559..d1290cce2ec8b6 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
@@ -73,13 +73,12 @@ class MachOPlatform : public Platform {
/// will be used.
std::optional<Dylib> IDDylib;
- /// Override for LC_BUILD_VERSION. If this is nullopt then
- std::optional<BuildVersionOpts> BuildVersion;
-
/// List of LC_LOAD_DYLIBs.
std::vector<Dylib> LoadDylibs;
/// List of LC_RPATHs.
std::vector<std::string> RPaths;
+ /// List of LC_BUILD_VERSIONs.
+ std::vector<BuildVersionOpts> BuildVersion;
HeaderOptions() = default;
HeaderOptions(Dylib D) : IDDylib(std::move(D)) {}
diff --git a/llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp b/llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
index 994acf5843642a..1549934e129b31 100644
--- a/llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
@@ -1725,11 +1725,9 @@ jitlink::Block &createHeaderBlock(MachOPlatform &MOP,
else
B.template addLoadCommand<MachO::LC_ID_DYLIB>(JD.getName(), 0, 0, 0);
- if (Opts.BuildVersion)
+ for (auto &BV : Opts.BuildVersion)
B.template addLoadCommand<MachO::LC_BUILD_VERSION>(
- Opts.BuildVersion->Platform, Opts.BuildVersion->MinOS,
- Opts.BuildVersion->SDK, static_cast<uint32_t>(0));
-
+ BV.Platform, BV.MinOS, BV.SDK, static_cast<uint32_t>(0));
for (auto &D : Opts.LoadDylibs)
B.template addLoadCommand<MachO::LC_LOAD_DYLIB>(
D.Name, D.Timestamp, D.CurrentVersion, D.CompatibilityVersion);
More information about the llvm-commits
mailing list