<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hello all,<div class=""><br class=""></div><div class=""><br class=""></div><div class="">I’m having some strange issues on osx when trying to link a C library module. I’ve successfully did this before with another library, however, for some reason this one doesn’t work.</div><div class="">My module map looks like this:</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">module</span> CFCGI [system] {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(232, 35, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">header</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span>"/usr/local/include/cfcgi/cfcgi.h"</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(232, 35, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">link</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span>"cfcgi"</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class="">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #35568a" class="">export</span> *</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class="">}</div></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">And the output:</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal;" class="">swift build</div><div style="margin: 0px; line-height: normal;" class="">Compiling Swift Module 'April' (1 sources)</div><div style="margin: 0px; line-height: normal;" class="">Linking Executable: &nbsp;.build/debug/April</div><div style="margin: 0px; line-height: normal;" class="">Undefined symbols for architecture x86_64:</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; "_cfcgi_create", referenced from:</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; &nbsp; &nbsp; _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; "_cfcgi_free", referenced from:</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; &nbsp; &nbsp; _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; "_cfcgi_start_and_wait", referenced from:</div><div style="margin: 0px; line-height: normal;" class="">&nbsp; &nbsp; &nbsp; _main in main.swift.o</div><div style="margin: 0px; line-height: normal;" class="">ld: symbol(s) not found for architecture x86_64</div></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">It looks like the linker ignores the `link&nbsp;"cfcgi”` part.&nbsp;</div><div style="margin: 0px; line-height: normal;" class="">I tried lots of things but failed to find the reason behind this. I’m starting to think this might be related to this paragraph in the clang docs:</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">"Automatic linking with the&nbsp;link&nbsp;directive is not yet widely implemented, because it requires support from both the object file format and the linker. The notion is&nbsp;similar to Microsoft Visual Studio’s&nbsp;#pragma&nbsp;comment(lib…).”</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Unfortunately I find it a little vague and I can’t know for sure if it applies here.</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">So far, this is what I know for sure:</div><div style="margin: 0px; line-height: normal;" class="">- libcfcgi.a is in&nbsp;/usr/local/lib and it’s compiled for x86_64</div><div style="margin: 0px; line-height: normal;" class="">- libcfcgi.a contains the above mentioned symbols, tested it with nm and linked it in a small C program&nbsp;</div><div style="margin: 0px; line-height: normal;" class="">- I’m on osx and build with the&nbsp;swift-2.2-SNAPSHOT-2015-12-01-a toolchain</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Any input on this would be greatly appreciated!</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Valentin Radu</div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div></body></html>