<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/124894/">https://git.reviewboard.kde.org/r/124894/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 23rd, 2015, 10:05 p.m. CEST, <b>Kevin Ottens</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/124894/diff/1/?file=397609#file397609line9" style="color: black; font-weight: bold; text-decoration: underline;">tests/units/akonadi/CMakeLists.txt</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">9</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">      <span class="s">akonadidatasourcerepositorytest</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Only difference here is the missing akonadidatasourcequeriestest, any idea why you had to remove it? I'd prefer a proper fix to such a workaround.</p></pre>
 </blockquote>



 <p>On August 23rd, 2015, 11:12 p.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">See the error quoted in the summary. I cannot even make out what statement in the code references the missing symbol. These are only tests, as long as there appears to be no reason to actually run them on OS X I am not very motivated to spend a lot of time hunting an exotic linking error...</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 7:19 a.m. CEST, <b>Kevin Ottens</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Well, sorry, that's not a valid argument for me. Those tests need to be ran on OS X as well if we want a chance to support it properly.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 10:31 a.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Well, sorry, but in that case you're going to have to step in/up, because it's your code and I don't understand it nor the error it's throwing beyond that it's a case of a missing symbol. I do know that there are subtle differences between gcc and clang and that clang on OS X uses libc++ instead of libstdc++ and that C++11 support has long been incomplete on OS X (and may still be on my version). I also have a strong hunch that doing an uneducated google search on this error will yield either countless irrelevant or obsolete results (cf. the std::accumulate fix), or none at all.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Another way of putting my argument would be "you wouldn't insist on testing something that's known not to work on platform X"?</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 10:33 a.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">BTW, it appears to be rather straightforward nowadays to run OS X under VirtualBox, and apparently the "on Apple hardware" EULA clause is void in countries like Germany.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 10:56 a.m. CEST, <b>Kevin Ottens</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Could you pastebin a full compile log somewhere?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also, do you think it's about clang or about OS X? Because I could attempt a build using clang I guess.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 11:53 a.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I just did a Linux build with (almost) the same clang version. It exposed a missing <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">#include <algorithm></code> in <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">src/domain/task.cpp</code> (see https://launchpad.net/~rjvbertin/+archive/ubuntu/kdepim/+build/7831190/+files/buildlog_ubuntu-trusty-amd64.zanshin_0.2.1.1163-1-git150821-rjvb-ppa150824b_BUILDING.txt.gz) plus a number of other (cast) errors that I didn't get on OS X. That ought to answer your question: yeah, I fear it's got more to do with OS X (and the fact it uses libc++ instead of libstdc++) than with clang .</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'll get you a configure + build log.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'd have to check, but I wouldn't be amazed if FreeBSD (and thus PC-BSD, the "Kubuntu of FreeBSD"; it uses a KDE4 desktop) use libc++ too and show the same build issues if they're caused by libc++. You'd probably feel more at home on that OS, and installing it under VirtualBox is straightforward.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 11:56 a.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">BTW: zanshin v0.2.1-1132-g13707d3 built just fine in that same launchpad PPA with the exact same settings.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 1:04 p.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">configure + initial full build (using <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">-k</code>):
https://paste.kde.org/poqsuhugq/ydfbri/raw</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">last (3rd) <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">make -k</code> in the same directory, showing only the failing build commands:
https://paste.kde.org/pcajg0xn5/ecjszc/raw</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 1:07 p.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">damn, that last link should be https://paste.kde.org/pkbu3aown/3yr0fm/raw</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 1:42 p.m. CEST, <b>Kevin Ottens</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">OK, this one about akonadidatasourcequeriestest is really obscure. It's not the only one you disabled though, any chance to see the compile or link error you get for the other tests you disabled? I wonder if they're all having the same root cause or if they are several different things.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 2:07 p.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">search for <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">error:</code> in the log, there's 14 of them ;)</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 2:16 p.m. CEST, <b>Kevin Ottens</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Ah right, I missed the other ones.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">OK, they all seem to revolve around mem_fn at least. So I guess switching to a lambda where we use mem_fn could solve it. I'm not a huge fan of that, also it's surprising that it fails for linking some of the tests but not the application itself. Very surprising...</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Anyway regarding the mem_fn issue, it's likely a long shot but I saw references to a bug with some clang version on OS X, they mention passing the following option at compile time: -D'_LIBCPP_EXTERN_TEMPLATE(...)='</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Could you try to do the same on your end and see if that helps?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I tried building with clang 3.5.0 here but couldn't reproduce the issue so far.</p></pre>
 </blockquote>





 <p>On August 24th, 2015, 2:40 p.m. CEST, <b>René J.V. Bertin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">OK, I'll try that, after the current build with clang 3.6 (from MacPorts, not Apple) is done.
So what is going on, and why would using mem_fn explicitly solve it if that's already a symbol that the linker cannot find?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Anyway, it seems my hunch was right that this is related to the use of lambda functions. I always forget if Apple/clang's variant, "blocks", are available outside of ObjC code, but if they are that might possibly be way to circumvent the issue altogether?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Are you sure that the application itself includes equivalent expressions to the one that fail in the test cases? If so, that code must be doing something that prevents the linker failure: include a headerfile or pull in the right library/framework explicitly. Have you been able to compare the linker commands for the applications and for the failing tests?</p></pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Oh, one more thing: clang 3.5.0 had some issues on Linux, which apparently you didn't run into, but it's best to update to at least 3.5.1 .</p></pre>
<br />




<p>- René J.V.</p>


<br />
<p>On August 23rd, 2015, 7:55 p.m. CEST, René J.V. Bertin wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDE Software on Mac OS X and Zanshin.</div>
<div>By René J.V. Bertin.</div>


<p style="color: grey;"><i>Updated Aug. 23, 2015, 7:55 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
zanshin
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is a set of patches that allow zanshin version <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">0.2.1-1163-gbf5c321</code> to build on OS X against the git head (or almost head) of kdelibs 4.14 and kdepim* 4.14 .
I presume for now that a number of changes are self-explanatory (for instance, <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">zanshinkdepimstatic</code> calls itself static, isn't installed and doesn't export any symbols explicitly so all points to it being intended to be a static instead of a shared lib).
The patches that disable a number of tests, and I do not understand myself what exactly goes wrong without them other than that the linker gives errors like</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" style="background: #f8f8f8"><pre style="line-height: 125%"><span style="border: 1px solid #FF0000">#</span> Undefined symbols <span style="color: #008000; font-weight: bold">for</span> architecture x86_64<span style="color: #666666">:</span>
<span style="border: 1px solid #FF0000">#</span>   <span style="color: #BA2121">"decltype(*(std::__1::forward<QSharedPointer<Domain::QueryResult<QString> > >(fp0)).*fp(std::__1::forward<>(fp1))) std::__1::__invoke<QList<std::__1::function<void (QString, int)> > (Domain::QueryResult<QString>::*&)() const, QSharedPointer<Domain::QueryResult<QString> >, void>(QList<std::__1::function<void (QString, int)> > (Domain::QueryResult<QString>::*&&&)() const, QSharedPointer<Domain::QueryResult<QString> >&&)"</span>, referenced from<span style="color: #666666">:</span>
<span style="border: 1px solid #FF0000">#</span>       std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span>__function<span style="color: #666666">::</span>__func<span style="color: #666666"><</span>std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span>__mem_fn<span style="color: #666666"><</span>QList<span style="color: #666666"><</span>std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span><span style="color: #008000; font-weight: bold">function</span><span style="color: #666666"><</span><span style="color: #008000; font-weight: bold">void</span> (QString, <span style="color: #008000; font-weight: bold">int</span>)<span style="color: #666666">></span> <span style="color: #666666">></span> (Domain<span style="color: #666666">::</span>QueryResult<span style="color: #666666"><</span>QString<span style="color: #666666">>::*</span>)() <span style="color: #008000; font-weight: bold">const</span><span style="color: #666666">></span>, std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span>allocator<span style="color: #666666"><</span>std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span>__mem_fn<span style="color: #666666"><</span>QList<span style="color: #666666"><</span>std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span><span style="color: #008000; font-weight: bold">function</span><span style="color: #666666"><</span><span style="color: #008000; font-weight: bold">void</span> (QString, <span style="color: #008000; font-weight: bold">int</span>)<span style="color: #666666">></span> <span style="color: #666666">></span> (Domain<span style="color: #666666">::</span>QueryResult<span style="color: #666666"><</span>QString<span style="color: #666666">>::*</span>)() <span style="color: #008000; font-weight: bold">const</span><span style="color: #666666">></span> <span style="color: #666666">></span>, QList<span style="color: #666666"><</span>std<span style="color: #666666">::</span>__1<span style="color: #666666">::</span><span style="color: #008000; font-weight: bold">function</span><span style="color: #666666"><</span><span style="color: #008000; font-weight: bold">void</span> (QString, <span style="color: #008000; font-weight: bold">int</span>)<span style="color: #666666">></span> <span style="color: #666666">></span> (QSharedPointer<span style="color: #666666"><</span>Domain<span style="color: #666666">::</span>QueryResult<span style="color: #666666"><</span>QString<span style="color: #666666">></span> <span style="color: #666666">></span>)<span style="color: #666666">>::</span>operator()(QSharedPointer<span style="color: #666666"><</span>Domain<span style="color: #666666">::</span>QueryResult<span style="color: #666666"><</span>QString<span style="color: #666666">></span> <span style="color: #666666">>&&</span>) <span style="color: #008000; font-weight: bold">in</span> queryresulttest.o
<span style="border: 1px solid #FF0000">#</span> ld<span style="color: #666666">:</span> symbol(s) not found <span style="color: #008000; font-weight: bold">for</span> architecture x86_64
<span style="border: 1px solid #FF0000">#</span> clang<span style="color: #666666">:</span> error<span style="color: #666666">:</span> linker command failed <span style="color: #008000; font-weight: bold">with</span> exit code <span style="color: #666666">1</span> (use <span style="color: #666666">-</span>v to see invocation)
</pre></div>
</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Possibly a comparable to the reason why I had to define the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">std::accumulate</code> functions.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">On OS X 10.9.5 with the system compiler (<code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)</code>)</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">My initial reason to install this was to "check it out" and learn how to use it, so I have not done any further testing ...</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>3rdparty/kdepim/libkdepim/CMakeLists.txt <span style="color: grey">(cc8845a)</span></li>

 <li>3rdparty/kdepim/libkdepim/tests/CMakeLists.txt <span style="color: grey">(775ac0e)</span></li>

 <li>src/akonadi/akonadiserializer.cpp <span style="color: grey">(5116fa5)</span></li>

 <li>tests/units/akonadi/CMakeLists.txt <span style="color: grey">(15e887f)</span></li>

 <li>tests/units/domain/CMakeLists.txt <span style="color: grey">(3b4d23c)</span></li>

 <li>tests/units/presentation/CMakeLists.txt <span style="color: grey">(3ce5a70)</span></li>

 <li>tests/units/widgets/CMakeLists.txt <span style="color: grey">(ab740a3)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/124894/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>