<div class="gmail_quote">On Wed, May 30, 2012 at 12:55 PM, Konstantin Tokarev <span dir="ltr"><<a href="mailto:annulen@yandex.ru" target="_blank">annulen@yandex.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
30.05.2012, 22:29, "David Blaikie" <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>>:<br>
<div class="im">> On Wed, May 30, 2012 at 11:20 AM, Matthieu Monrocq <<a href="mailto:matthieu.monrocq@gmail.com">matthieu.monrocq@gmail.com</a>> wrote:<br>
>> On Wed, May 30, 2012 at 9:56 AM, Konstantin Tokarev <<a href="mailto:annulen@yandex.ru">annulen@yandex.ru</a>> wrote:<br>
>><br>
>>> Hi all,<br>
>>><br>
>>> I've managed to build LLVM and Clang with EKOPath 4.0.12.1 compiler. Here are patches I had to introcduce<br>
>>> to make it compiling.<br>
>>><br>
>>> Patch for clang moves some classes from anonymous namespaces which otherwise caused linker<br>
>>> errors. Probably it's a bug in compiler producing symbols with incorrect visibility.<br>
>>><br>
>>> --<br>
>>> Regards,<br>
>>> Konstantin<br>
>>><br>
>>> _______________________________________________<br>
>>> cfe-dev mailing list<br>
>>> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
>><br>
>> I must admit it seems weird to be tweaking the code just to get it to compile with an exotic compiler.<br>
>><br>
>> Adding includes occurs regularly because the standard does not define which standard includes include which others, so you often miss one or two.<br>
>><br>
>> On the other hand, it seems strange that you had to add the "std::" qualifiers,<br>
> This one's not actually that surprising - if a std::vector's iterators are implemented as raw pointers, rather than as a type in the std namespace, then unqualified find(vec.begin(), vec.end(), ...) won't compile, since 'find' won't be found via ADL.<br>

<br>
</div>EKOPath uses Apache stdcxx library as its STL implementation so it's probably the case.<br>
<div class="im"><br>
>> remove the anonymous namespace in some places (all ?)<br>
> This I can't explain - what errors are given that motivate this change?<br>
<br>
</div>There were several unresolved symbols coming from classes declared in these namespaces. Probably it's a bug in compiler which erroneously uses internal linking for symbols declared in anonymous namespace. For the record, this bug affects only derivatives of RecursiveASTVisitor template.<br>
</blockquote></div><br><div>Does the link succeed if you move the out-of-line definitions of the class members into the anonymous namespace?</div>