<div dir="ltr">I think it makes sense to have support for this input format in the tools.  Since the macOS SDK is slowly switching to this, having the tools work out of the box is a nice feature.  It is rather convenient having a single toolset be sufficient to provide infrastructure for all the targets.<div><br></div><div>Saleem<br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 8, 2017 at 10:32 AM, Juergen Ributzka via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-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 dir="ltr">Hi Paul,<div><br></div><div>My experience has shown the same when it comes to header files and I am not claiming this is going to work out of the box for all library projects. It usually requires some cleanup first and that is why the tool comes with a verification mode to make sure the headers are the truth. Also keep in mind that you don't have to parse all the headers, but only the small set that get installed as part of the library API.</div><div><br></div><div>The tool does not read the linker script / export file, because they are not necessarily the truth either and may have wildcards. In my view they are just one way of managing exported symbols. Another way, which I personally prefer, is to build with visibility hidden and annotate only the API with visibility default. That makes the headers the single source of what is API.</div><div><br></div><div>Cheers,</div><div>Juergen</div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 8, 2017 at 9:29 AM, Robinson, Paul <span dir="ltr"><<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>> InstallAPI:<br>
> InstallAPI is a new build phase that generates the TBD file from header<br>
> files only. This allows a dependency of the library to build concurrently<br>
> even before the library has been built itself. This can be used to<br>
> increase parallelism in the build or larger projects or operating systems.<br>
<br>
</span>My experience is that headers don't necessarily form the best source of<br>
truth about the API exported from a library.  If you follow the Windows<br>
model of marking exported APIs explicitly (declspec(dllexport) or something)<br>
then okay, but that's a Windows extension and not common in other systems.<br>
Linker scripts seem to be a more popular method; does the tool read linker<br>
scripts to form the content of a TBD file?<br>
Otherwise I'm not seeing a generic improvement in build parallelism.<br>
--paulr<br>
<br>
<br>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org</div>
</div></div></div>