<p dir="ltr">I guess we should look at realpath() compatibility, but in fairness passing NULL for the second parameter is according to POSIX.1-2008, not glibc extension.<br></p>
<p dir="ltr">On Jan 4, 2014 2:35 PM, "Jani Nikula" <<a href="mailto:jani@nikula.org">jani@nikula.org</a>> wrote:<br>
><br>
> For the visibility issue please upgrade Notmuch.<br>
><br>
> BR,<br>
> Jani.<br>
><br>
> On Jan 4, 2014 2:26 PM, "Thomas Klausner" <<a href="mailto:tk@giga.or.at">tk@giga.or.at</a>> wrote:<br>
> ><br>
> > Hi!<br>
> ><br>
> > I'm currently starting to try out notmuch-0.16 on NetBSD. It went off<br>
> > to a rocky start, since it segfaulted in the initial config setup.<br>
> ><br>
> > Debugging it I found that notmuch uses a glibc extension to realpath,<br>
> > allowing NULL as second argument.<br>
> ><br>
> > I've converted it to use a prepared buffer instead; attached is a<br>
> > possible patch that makes notmuch complete its setup phase for me, and<br>
> > adds inclusion of the header files suggested by the realpath man page<br>
> > on NetBSD. Please address this issue in some way in the next release.<br>
> ><br>
> > Additionally, when compiling with clang, there are issues with the<br>
> > visibility. The symptoms are:<br>
> ><br>
> > In file included from lib/database.cc:21:<br>
> > In file included from ./lib/database-private.h:33:<br>
> > ./lib/notmuch-private.h:479:8: error: visibility does not match previous declaration<br>
> > array subscriptstruct visible _notmuch_string_list {<br>
> > ^<br>
> > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'<br>
> > # define visible __attribute__((visibility("default")))<br>
> > ^<br>
> > ./lib/notmuch-private.h:52:13: note: previous attribute is here<br>
> > #pragma GCC visibility push(hidden)<br>
> > ^<br>
> ><br>
> > In file included from lib/parse-time-vrp.cc:23:<br>
> > In file included from ./lib/database-private.h:33:<br>
> > ./lib/notmuch-private.h:479:8: error: visibility does not match previous declaration<br>
> > struct visible _notmuch_string_list {<br>
> > ^<br>
> > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'<br>
> > # define visible __attribute__((visibility("default")))<br>
> > ^<br>
> > ./lib/notmuch-private.h:52:13: note: previous attribute is here<br>
> > #pragma GCC visibility push(hidden)<br>
> > ^<br>
> > 1 warning generated.<br>
> > In file included from lib/directory.cc:21:<br>
> > ./lib/notmuch-private.h:479:8: error: visibility does not match previous declaration<br>
> > struct visible _notmuch_string_list {<br>
> > ^<br>
> > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'<br>
> > # define visible __attribute__((visibility("default")))<br>
> > ^<br>
> > ./lib/notmuch-private.h:52:13: note: previous attribute is here<br>
> > #pragma GCC visibility push(hidden)<br>
> > ^<br>
> ><br>
> > and so on. I guess it is because the visibility differs between c and<br>
> > c++. I've disabled visibility locally, see second attached patch, but<br>
> > of course that's not a solution, just a workaround. Suggestions<br>
> > welcome.<br>
> ><br>
> > Thanks,<br>
> > Thomas<br>
> ><br>
> > _______________________________________________<br>
> > notmuch mailing list<br>
> > <a href="mailto:notmuch@notmuchmail.org">notmuch@notmuchmail.org</a><br>
> > <a href="http://notmuchmail.org/mailman/listinfo/notmuch">http://notmuchmail.org/mailman/listinfo/notmuch</a><br>
> ><br>
</p>