diff options
author | Jim Grosbach <grosbach@apple.com> | 2014-03-18 22:09:08 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2014-03-18 22:09:08 +0000 |
commit | eaf6036fb2c016fe3c03070dc75b8402ed0bef65 (patch) | |
tree | 98f65e8665d9777d7aecc189cb04d74284ec830c /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
parent | 448334a738408b08b9472f7ec15cc331f108e7bf (diff) | |
download | bcm5719-llvm-eaf6036fb2c016fe3c03070dc75b8402ed0bef65.tar.gz bcm5719-llvm-eaf6036fb2c016fe3c03070dc75b8402ed0bef65.zip |
MachO: Emit a version-min load command when possible.
When deployment target version information is available, emit it to the
target streamer for inclusion in the object file.
rdar://11337778
llvm-svn: 204191
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 81316625704..086b08173eb 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -178,6 +178,25 @@ bool AsmPrinter::doInitialization(Module &M) { Mang = new Mangler(TM.getDataLayout()); + // Emit the version-min deplyment target directive if needed. + // + // FIXME: If we end up with a collection of these sorts of Darwin-specific + // or ELF-specific things, it may make sense to have a platform helper class + // that will work with the target helper class. For now keep it here, as the + // alternative is duplicated code in each of the target asm printers that + // use the directive, where it would need the same conditionalization + // anyway. + Triple TT(getTargetTriple()); + if (TT.isOSDarwin()) { + unsigned Major, Minor, Update; + TT.getOSVersion(Major, Minor, Update); + // If there is a version specified, Major will be non-zero. + if (Major) + OutStreamer.EmitVersionMin((TT.isMacOSX() ? + MCVM_OSXVersionMin : MCVM_IOSVersionMin), + Major, Minor, Update); + } + // Allow the target to emit any magic that it wants at the start of the file. EmitStartOfAsmFile(M); |