<p dir="ltr">Testcase? </p>
<p dir="ltr">In particular, is it the intention that an assembly file with no directives will get this load command?</p>
<div class="gmail_quote">On Jul 23, 2015 9:51 PM, "Steven Wu" <<a href="mailto:stevenwu@apple.com">stevenwu@apple.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jim<br>
<br>
Here is a patch that forces all the MachO objects on Darwin to have version_min load command. When MCObjectStreamer is created, it will inferred the default version_min from target triple. When there is a version_min directive in the assembly input, it will overwrite the default. By doing so, it will not affect the assembly source that already have version_min directive, but force a version_min load command on the others.<br>
<br>
The only relevant part of the change is following and the rest is just updating the test for correct load command number and offset in the file:<br>
<br>
diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp<br>
index 53cd131..116ef09 100644<br>
--- a/lib/MC/MCMachOStreamer.cpp<br>
+++ b/lib/MC/MCMachOStreamer.cpp<br>
@@ -493,6 +493,16 @@ MCStreamer *llvm::createMachOStreamer(MCContext &Context, MCAsmBackend &MAB,<br>
                                       bool LabelSections) {<br>
   MCMachOStreamer *S = new MCMachOStreamer(Context, MAB, OS, CE,<br>
                                            DWARFMustBeAtTheEnd, LabelSections);<br>
+  const Triple &TT = Context.getObjectFileInfo()->getTargetTriple();<br>
+  if (TT.isOSDarwin()) {<br>
+    unsigned Major, Minor, Update;<br>
+    TT.getOSVersion(Major, Minor, Update);<br>
+    // If there is a version specified, Major will be non-zero.<br>
+    if (Major)<br>
+      S->EmitVersionMin((TT.isMacOSX() ?<br>
+                        MCVM_OSXVersionMin : MCVM_IOSVersionMin),<br>
+                        Major, Minor, Update);<br>
+  }<br>
   if (RelaxAll)<br>
     S->getAssembler().setRelaxAll(true);<br>
   return S;<br>
<br>
Thanks<br>
<br>
Steven<br>
<br>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div>