<div dir="ltr">The tool uses Clang to parse the user's C/C++ code to get the calling conventions from the AST, so they need to match the ones in the compiled libraries to allow correct interop. If the user libraries were compiled with GCC 4.6 (which stills seems used by some MinGW distros) then once we upgrade to the latest Clang we'll start getting thiscall CC instead of the correct one used pre-4.7 for those libraries. If there was something like an "-fgcc-abi=4.6" flag we could pass to Clang, then it would provide us with the correct CCs for the given GCC version.<div>

<br></div><div>If the community thinks that is undesirable for the project then we can work around it on our side, but it seems to me these details should be contained in Clang.</div></div><div class="gmail_extra"><br><br>

<div class="gmail_quote">On Tue, Dec 10, 2013 at 2:21 PM, Rafael Espķndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On 10 December 2013 09:16, Joćo Matos <<a href="mailto:ripzonetriton@gmail.com">ripzonetriton@gmail.com</a>> wrote:<br>
> For the current project I'm working on (<a href="https://github.com/mono/CppSharp" target="_blank">https://github.com/mono/CppSharp</a>)<br>
> having the flags to change the ABI based on a GCC version would be ideal. If<br>
> there are no flags, this means we must implement some logic to change the<br>
> calling conventions of methods manually to how they were pre-4.7. Should not<br>
> be a lot of work but it'd be best to contain all the C++ ABI details inside<br>
> Clang itself.<br>
<br>
</div>Because you must link with gcc 4.6 compiled libraries for now or is<br>
that a permanent thing?<br>
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Joćo Matos
</div>