<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 2, 2014, at 8:58 PM, Rui Ueyama wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Apr 2, 2014 at 6:36 PM, Nick Kledzik <span dir="ltr"><<a href="mailto:kledzik@apple.com" target="_blank">kledzik@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>It is more than “verify” . Mach-o has “fat” (aka “universal”) files which contain multiple “slices”.  Each slice is for a different arch.  The Reader needs to know the intended arch up front to pick the right slice.  </div>

</div></blockquote><div><br></div><div>That's true. Does the linker on Mac knows which architecture that is trying to link prior to handling input files (by a command line flag, environment variable, etc), or does it have to make a decision by reading a few files? (e.g. set the target architecture with the same one as the first file's magic.)</div></div></div></div></blockquote><div><br></div><div>99% of the time there is a -arch option on the command line which forces which architecture is to be linked.  If there is no -arch on the command line, the linker sniffs the input files in order until it finds the first non-fat object file and then forces the architecture to match that. This sniffing is done independently (and prior to) actual input file processing.</div><div><br></div><div>-Nick</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div class=""><div><br></div><div><div>On Apr 1, 2014, at 10:06 PM, Rui Ueyama <<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>> wrote:</div>

<blockquote type="cite"><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

I'd think we can simply wait for all files to be parsed and pass them to a LinkingContext to ask whether or not the input file set seems OK.</div></blockquote></div><div><br></div></div><div>Except there is no method on lld::File that returns its “architecture”.  </div>

<div><br></div><div>We’ve been side stepping the issue of how to model architectures (e.g. triples) in lld.  We do need to eventually nail this down because we need to record that info in yaml and native files.</div><span class="HOEnZb"><font color="#888888"><div>

<br></div><div>-Nick</div><div><br></div></font></span></div></blockquote></div><br></div></div>
</blockquote></div><br></body></html>