diff options
author | Alex Lorenz <arphaman@gmail.com> | 2018-12-14 01:14:10 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2018-12-14 01:14:10 +0000 |
commit | afa75d7843c92a7ac9a194f4b1a2396c03e3efd8 (patch) | |
tree | 0b2627d35b4422489fa052fc40254da1fd8f3369 /llvm/lib/MC/MCStreamer.cpp | |
parent | 4065da29f071f736f8f1314847939e7859942e91 (diff) | |
download | bcm5719-llvm-afa75d7843c92a7ac9a194f4b1a2396c03e3efd8.tar.gz bcm5719-llvm-afa75d7843c92a7ac9a194f4b1a2396c03e3efd8.zip |
[macho] save the SDK version stored in module metadata into the version min and
build version load commands in the object file
This commit introduces a new metadata node called "SDK Version". It will be set
by the frontend to mark the platform SDK (macOS/iOS/etc) version which was used
during that particular compilation.
This node is used when machine code is emitted, by either saving the SDK version
into the appropriate macho load command (version min/build version), or by
emitting the assembly for these load commands with the SDK version specified as
well.
The assembly for both load commands is extended by allowing it to contain the
sdk_version X, Y [, Z] trailing directive to represent the SDK version
respectively.
rdar://45774000
Differential Revision: https://reviews.llvm.org/D55612
llvm-svn: 349119
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index 3722c0ad3c8..733dd4019dc 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -1045,7 +1045,8 @@ MCSymbol *MCStreamer::endSection(MCSection *Section) { return Sym; } -void MCStreamer::EmitVersionForTarget(const Triple &Target) { +void MCStreamer::EmitVersionForTarget(const Triple &Target, + const VersionTuple &SDKVersion) { if (!Target.isOSBinFormatMachO() || !Target.isOSDarwin()) return; // Do we even know the version? @@ -1071,5 +1072,5 @@ void MCStreamer::EmitVersionForTarget(const Triple &Target) { Target.getiOSVersion(Major, Minor, Update); } if (Major != 0) - EmitVersionMin(VersionType, Major, Minor, Update); + EmitVersionMin(VersionType, Major, Minor, Update, SDKVersion); } |