<div dir="ltr">Hi Guys,<div><br></div><div>As I left it, lld on Darwin could compile Clang / LLVM and the nightly test suite, so we were definitely making progress. There were still plenty of bug fixes to get through though. If anyone's interested in contributing to MachO support in lld I'm happy to translate some of the radars into <a href="http://llvm.org">llvm.org</a> bugs.</div><div><br></div><div>Cheers,</div><div>Lang.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 11, 2017 at 11:34 PM, Peter Kriens <span dir="ltr"><<a href="mailto:peter.kriens@aqute.biz" target="_blank">peter.kriens@aqute.biz</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">Sounds like a fantastic goal, and enticingly close …<div><br></div><div>Kind regards,</div><div><br></div><div><span class="m_7377136829105781509Apple-tab-span" style="white-space:pre-wrap">      </span>Peter Kriens</div><div><div class="h5"><div><br><div><blockquote type="cite"><div>On 11 May 2017, at 20:53, Andrew Kelley <<a href="mailto:superjoe30@gmail.com" target="_blank">superjoe30@gmail.com</a>> wrote:</div><br class="m_7377136829105781509Apple-interchange-newline"><div><div dir="ltr">Zig author here in the same boat. Looks like I'm going to have to disable cross compiling for MacOS and when compiling native for MacOS add a dependency on the system linker. Really looking forward to Mach-O support in LLD, because at that point my users will be able to cross compile for any OS out of the box.<br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 11, 2017 at 1:37 PM, Peter Kriens via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</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">Thanks for the answer. However, this means I need a different linker for MacOS as for Windows/Linux?<div><br></div><div>I guess it is a not a major thing but I was hoping to set up a cross compile env. where only the header files and shared libraries differed :-( I guess we’re not there yet … :-)</div><div><br></div><div>Kind regards,</div><div><br></div><div><span class="m_7377136829105781509m_-1252351319062437879Apple-tab-span" style="white-space:pre-wrap">      </span>Peter Kriens</div><div><div class="m_7377136829105781509h5"><div><br><div><blockquote type="cite"><div>On 6 May 2017, at 19:57, Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>> wrote:</div><br class="m_7377136829105781509m_-1252351319062437879Apple-interchange-newline"><div><div dir="ltr">LLD work on Darwin is stalled out at the moment. Patches are welcome (and I'll try to find time to review them), but I'd recommend ld64 for any real-world linking.<div><br></div><div>- Lang.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 27, 2017 at 11:06 AM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Cc'ing people who are working on macOS.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_7377136829105781509m_-1252351319062437879h5">On Thu, Apr 27, 2017 at 9:05 AM, Peter Kriens via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_7377136829105781509m_-1252351319062437879h5"><div style="word-wrap:break-word">Hopefully the right list … otherwise pointers appreciated (I’ve spent days trying to find a solution but could not find sufficient documentation, could not find a proper list of -flavor darwin commands)<div><br></div><div>I am setting up an environment for cross compiling shared libraries using LLVM. Overall this works perfectly for many unix like environments but MacOS is a pain in the ass despite that I am running on MacOS. (I’ve not tried windows yet.)</div><div><br></div><div>I seem to be able to compile with clang a proper mach object file for a hello function. However, when I link this function into a shared library I (surprisingly for a shared lib?) get undefined symbols like _printf, stub runtime: dyld_stub_binder, _main, etc. Using the flag </div><div><br></div><div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>-undefined dynamic_lookup</div></div><div><br></div><div>I get no errors or warnings but then when I try to link the shared library to a main program I get the error:</div><div><br></div><div><div><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">   </span>ld: malformed dylib has MH_NO_REEXPORTED_DYLIBS flag </div><div><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">   </span>but no LC_REEXPORT_DYLIB load commands: ./libhello.dylib file './libhello.dylib'</div><div><br></div></div><div>I’ve included the shell file that makes the hello shared lib and the command that I use to link the file.</div><div><br></div><div>Thanks for any help, this looks like an amazing solution if it can get to work on all supported platforms.</div><div><br></div><div>Kind regards,</div><div><br></div><div><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">  </span>Peter Kriens</div><div><br></div><div><div style="margin:0px;font-size:11px;line-height:normal">$ /usr/local/Cellar/llvm/4.0.0_1<wbr>/bin/<span style="color:#ff934f">clang</span> \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">    </span>-target x86_64-apple-darwin16.5.0 \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>-Ienvs/x86_64/apple/macos/darw<wbr>in/16.5.0/include  \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">    </span>-v \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">      </span>-nostdinc \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>-fPIC \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">   </span>-c \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">      </span>-Wno-nullability-completeness \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">   </span>hello.c x.c</div><div style="margin:0px;font-size:11px;line-height:normal;min-height:15px"><br></div><div style="margin:0px;line-height:normal;min-height:15px"><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px">$ file hello.o</span></div><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px">hello.o: Mach-O 64-bit object x86_64</span></div><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px"><br></span></div><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px">$ /usr/local/Cellar/llvm/4.0.0_1<wbr>/bin/ld.lld \</span></div></div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">        </span>-flavor darwin \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">  </span>-v \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">      </span>-sdk_version 10.5.0 \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">     </span>-demangle \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>-<span style="color:#ff934f">arch</span> x86_64 \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">   </span>-undefined dynamic_lookup \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>-dylib \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">  </span>-dynamic \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">        </span>-o libhello.dylib \</div><div style="margin:0px;font-size:11px;line-height:normal"><span class="m_7377136829105781509m_-1252351319062437879m_-6203298060670998340m_-1814267315395156145Apple-tab-span" style="white-space:pre-wrap">       </span>hello.o</div></div><div><div style="margin:0px;line-height:normal;min-height:15px"><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px"><br></span></div><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px">$ file libhello.dylib </span></div><div style="margin:0px;line-height:normal;min-height:15px"><span style="font-size:11px">libhello.dylib: Mach-O 64-bit dynamically linked shared library x86_64</span></div><div><br></div></div></div><div>$ gcc x.c -L. -lhello</div><div>ld: malformed dylib has MH_NO_REEXPORTED_DYLIBS flag but no LC_REEXPORT_DYLIB load commands: ./libhello.dylib file ‘./libhello.dylib'</div><div><br></div><div><br></div><div><br></div></div><br></div></div>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></div><br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>