[KDE/Mac] Review Request 124894: [OS X] make it build
René J.V. Bertin
rjvbertin at gmail.com
Mon Aug 24 09:53:41 UTC 2015
> On Aug. 23, 2015, 10:05 p.m., Kevin Ottens wrote:
> > tests/units/akonadi/CMakeLists.txt, line 9
> > <https://git.reviewboard.kde.org/r/124894/diff/1/?file=397609#file397609line9>
> >
> > 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.
>
> René J.V. Bertin wrote:
> 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...
>
> Kevin Ottens wrote:
> 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.
>
> René J.V. Bertin wrote:
> 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.
>
> Another way of putting my argument would be "you wouldn't insist on testing something that's known not to work on platform X"?
>
> René J.V. Bertin wrote:
> 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.
>
> Kevin Ottens wrote:
> Could you pastebin a full compile log somewhere?
>
> Also, do you think it's about clang or about OS X? Because I could attempt a build using clang I guess.
I just did a Linux build with (almost) the same clang version. It exposed a missing `#include <algorithm>` in `src/domain/task.cpp` (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 .
I'll get you a configure + build log.
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.
- René J.V.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124894/#review84235
-----------------------------------------------------------
On Aug. 23, 2015, 7:55 p.m., René J.V. Bertin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124894/
> -----------------------------------------------------------
>
> (Updated Aug. 23, 2015, 7:55 p.m.)
>
>
> Review request for KDE Software on Mac OS X and Zanshin.
>
>
> Repository: zanshin
>
>
> Description
> -------
>
> This is a set of patches that allow zanshin version `0.2.1-1163-gbf5c321` 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, `zanshinkdepimstatic` 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
>
> ```
> # Undefined symbols for architecture x86_64:
> # "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> >&&)", referenced from:
> # std::__1::__function::__func<std::__1::__mem_fn<QList<std::__1::function<void (QString, int)> > (Domain::QueryResult<QString>::*)() const>, std::__1::allocator<std::__1::__mem_fn<QList<std::__1::function<void (QString, int)> > (Domain::QueryResult<QString>::*)() const> >, QList<std::__1::function<void (QString, int)> > (QSharedPointer<Domain::QueryResult<QString> >)>::operator()(QSharedPointer<Domain::QueryResult<QString> >&&) in queryresulttest.o
> # ld: symbol(s) not found for architecture x86_64
> # clang: error: linker command failed with exit code 1 (use -v to see invocation)
> ```
>
> Possibly a comparable to the reason why I had to define the `std::accumulate` functions.
>
>
> Diffs
> -----
>
> 3rdparty/kdepim/libkdepim/CMakeLists.txt cc8845a
> 3rdparty/kdepim/libkdepim/tests/CMakeLists.txt 775ac0e
> src/akonadi/akonadiserializer.cpp 5116fa5
> tests/units/akonadi/CMakeLists.txt 15e887f
> tests/units/domain/CMakeLists.txt 3b4d23c
> tests/units/presentation/CMakeLists.txt 3ce5a70
> tests/units/widgets/CMakeLists.txt ab740a3
>
> Diff: https://git.reviewboard.kde.org/r/124894/diff/
>
>
> Testing
> -------
>
> On OS X 10.9.5 with the system compiler (`Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)`)
>
> 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 ...
>
>
> Thanks,
>
> René J.V. Bertin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150824/7c47fb76/attachment.html>
More information about the kde-mac
mailing list