1 Return-Path: <jani@nikula.org>
\r
2 X-Original-To: notmuch@notmuchmail.org
\r
3 Delivered-To: notmuch@notmuchmail.org
\r
4 Received: from localhost (localhost [127.0.0.1])
\r
5 by olra.theworths.org (Postfix) with ESMTP id 494E1431FC0
\r
6 for <notmuch@notmuchmail.org>; Sat, 4 Jan 2014 04:46:47 -0800 (PST)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=-0.699 tagged_above=-999 required=5
\r
12 tests=[HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled
\r
13 Received: from olra.theworths.org ([127.0.0.1])
\r
14 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
15 with ESMTP id RNHtIL1Bi828 for <notmuch@notmuchmail.org>;
\r
16 Sat, 4 Jan 2014 04:46:39 -0800 (PST)
\r
17 Received: from mail-pa0-f51.google.com (mail-pa0-f51.google.com
\r
18 [209.85.220.51]) (using TLSv1 with cipher RC4-SHA (128/128 bits))
\r
19 (No client certificate requested)
\r
20 by olra.theworths.org (Postfix) with ESMTPS id 672FE431FBD
\r
21 for <notmuch@notmuchmail.org>; Sat, 4 Jan 2014 04:46:39 -0800 (PST)
\r
22 Received: by mail-pa0-f51.google.com with SMTP id fa1so16878769pad.10
\r
23 for <notmuch@notmuchmail.org>; Sat, 04 Jan 2014 04:46:37 -0800 (PST)
\r
24 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
\r
25 d=1e100.net; s=20130820;
\r
26 h=x-gm-message-state:mime-version:in-reply-to:references:date
\r
27 :message-id:subject:from:to:cc:content-type;
\r
28 bh=JtSa5qOKFXCZ/rkmDJn8clo+cswnzCqKUs59YmhGYp4=;
\r
29 b=KthG+TaUgaROCkXaGKNjO6EXnyeherW9uqoSmXF0nQfkgMPvAHHttZyjcIp4bN+qFe
\r
30 IovriRb/BD5G9dc7VYHF8iO7dPafYTvmNpvahqv/yCC3R794fxFZBgmnlSAQM5ofUtBY
\r
31 aqnbZAVOzOyepnuB2vbdgGLcVsY64ZjOeG+ZJDBDWzZi5S07DtAWTy6bUBxuOqrqvmo+
\r
32 WXSwuKF6iJeWKrZGQYD2W9PdlaArCpXxmACHH1DjjZpMlaC7qRMfw0yj9VyJrd/+wvSw
\r
33 Gq/N46KXnqxXOKdnz3f8uRK3sHQwnHRqv4bI+obTrcUyJbFV5GC6tG2GzZ2yxFM6l1cO
\r
36 ALoCoQlWHuEZZM7CymHHw0MUVGpglcot2ZWhLJ03Qfyn7MfCBrp20Z7+fFiTeLpRdD0umBoMozYM
\r
38 X-Received: by 10.68.99.226 with SMTP id et2mr56822556pbb.8.1388839597368;
\r
39 Sat, 04 Jan 2014 04:46:37 -0800 (PST)
\r
40 Received: by 10.70.42.228 with HTTP; Sat, 4 Jan 2014 04:46:37 -0800 (PST)
\r
41 Received: by 10.70.42.228 with HTTP; Sat, 4 Jan 2014 04:46:37 -0800 (PST)
\r
43 <CAB+hUn-8eyY07y3j1N3JJLQ3qWVEVPoGWHcUVkovg34xH0ZOwQ@mail.gmail.com>
\r
44 References: <20140103214735.GG27614@danbala.tuwien.ac.at>
\r
45 <CAB+hUn-8eyY07y3j1N3JJLQ3qWVEVPoGWHcUVkovg34xH0ZOwQ@mail.gmail.com>
\r
46 Date: Sat, 4 Jan 2014 14:46:37 +0200
\r
48 <CAB+hUn-ov+2roT-tVTcjuPbckiTkRPtUxazfmY1KFeeVoMQJCA@mail.gmail.com>
\r
49 Subject: Re: notmuch-0.16: realpath() compatibility issue;
\r
50 clang visibility problem
\r
51 From: Jani Nikula <jani@nikula.org>
\r
52 To: Thomas Klausner <tk@giga.or.at>
\r
53 Content-Type: multipart/alternative; boundary=047d7b6dd09cda0cb204ef246ae9
\r
54 Cc: Notmuch Mail <notmuch@notmuchmail.org>
\r
55 X-BeenThere: notmuch@notmuchmail.org
\r
56 X-Mailman-Version: 2.1.13
\r
58 List-Id: "Use and development of the notmuch mail system."
\r
59 <notmuch.notmuchmail.org>
\r
60 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
61 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
62 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
63 List-Post: <mailto:notmuch@notmuchmail.org>
\r
64 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
65 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
66 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
67 X-List-Received-Date: Sat, 04 Jan 2014 12:46:47 -0000
\r
69 --047d7b6dd09cda0cb204ef246ae9
\r
70 Content-Type: text/plain; charset=UTF-8
\r
72 I guess we should look at realpath() compatibility, but in fairness passing
\r
73 NULL for the second parameter is according to POSIX.1-2008, not glibc
\r
76 On Jan 4, 2014 2:35 PM, "Jani Nikula" <jani@nikula.org> wrote:
\r
78 > For the visibility issue please upgrade Notmuch.
\r
83 > On Jan 4, 2014 2:26 PM, "Thomas Klausner" <tk@giga.or.at> wrote:
\r
87 > > I'm currently starting to try out notmuch-0.16 on NetBSD. It went off
\r
88 > > to a rocky start, since it segfaulted in the initial config setup.
\r
90 > > Debugging it I found that notmuch uses a glibc extension to realpath,
\r
91 > > allowing NULL as second argument.
\r
93 > > I've converted it to use a prepared buffer instead; attached is a
\r
94 > > possible patch that makes notmuch complete its setup phase for me, and
\r
95 > > adds inclusion of the header files suggested by the realpath man page
\r
96 > > on NetBSD. Please address this issue in some way in the next release.
\r
98 > > Additionally, when compiling with clang, there are issues with the
\r
99 > > visibility. The symptoms are:
\r
101 > > In file included from lib/database.cc:21:
\r
102 > > In file included from ./lib/database-private.h:33:
\r
103 > > ./lib/notmuch-private.h:479:8: error: visibility does not match
\r
104 previous declaration
\r
105 > > array subscriptstruct visible _notmuch_string_list {
\r
107 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'
\r
108 > > # define visible __attribute__((visibility("default")))
\r
110 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here
\r
111 > > #pragma GCC visibility push(hidden)
\r
114 > > In file included from lib/parse-time-vrp.cc:23:
\r
115 > > In file included from ./lib/database-private.h:33:
\r
116 > > ./lib/notmuch-private.h:479:8: error: visibility does not match
\r
117 previous declaration
\r
118 > > struct visible _notmuch_string_list {
\r
120 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'
\r
121 > > # define visible __attribute__((visibility("default")))
\r
123 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here
\r
124 > > #pragma GCC visibility push(hidden)
\r
126 > > 1 warning generated.
\r
127 > > In file included from lib/directory.cc:21:
\r
128 > > ./lib/notmuch-private.h:479:8: error: visibility does not match
\r
129 previous declaration
\r
130 > > struct visible _notmuch_string_list {
\r
132 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'visible'
\r
133 > > # define visible __attribute__((visibility("default")))
\r
135 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here
\r
136 > > #pragma GCC visibility push(hidden)
\r
139 > > and so on. I guess it is because the visibility differs between c and
\r
140 > > c++. I've disabled visibility locally, see second attached patch, but
\r
141 > > of course that's not a solution, just a workaround. Suggestions
\r
147 > > _______________________________________________
\r
148 > > notmuch mailing list
\r
149 > > notmuch@notmuchmail.org
\r
150 > > http://notmuchmail.org/mailman/listinfo/notmuch
\r
153 --047d7b6dd09cda0cb204ef246ae9
\r
154 Content-Type: text/html; charset=UTF-8
\r
155 Content-Transfer-Encoding: quoted-printable
\r
157 <p dir=3D"ltr">I guess we should look at realpath() compatibility, but in f=
\r
158 airness passing NULL for the second parameter is according to POSIX.1-2008,=
\r
159 not glibc extension.<br></p>
\r
160 <p dir=3D"ltr">On Jan 4, 2014 2:35 PM, "Jani Nikula" <<a href=
\r
161 =3D"mailto:jani@nikula.org">jani@nikula.org</a>> wrote:<br>
\r
163 > For the visibility issue please upgrade Notmuch.<br>
\r
168 > On Jan 4, 2014 2:26 PM, "Thomas Klausner" <<a href=3D"mai=
\r
169 lto:tk@giga.or.at">tk@giga.or.at</a>> wrote:<br>
\r
173 > > I'm currently starting to try out notmuch-0.16 on NetBSD. It =
\r
175 > > to a rocky start, since it segfaulted in the initial config setup=
\r
178 > > Debugging it I found that notmuch uses a glibc extension to realp=
\r
180 > > allowing NULL as second argument.<br>
\r
182 > > I've converted it to use a prepared buffer instead; attached =
\r
184 > > possible patch that makes notmuch complete its setup phase for me=
\r
186 > > adds inclusion of the header files suggested by the realpath man =
\r
188 > > on NetBSD. Please address this issue in some way in the next rele=
\r
191 > > Additionally, when compiling with clang, there are issues with th=
\r
193 > > visibility. The symptoms are:<br>
\r
195 > > In file included from lib/database.cc:21:<br>
\r
196 > > In file included from ./lib/database-private.h:33:<br>
\r
197 > > ./lib/notmuch-private.h:479:8: error: visibility does not match p=
\r
198 revious declaration<br>
\r
199 > > array subscriptstruct visible _notmuch_string_list {<br>
\r
200 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0^<br>
\r
201 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'vis=
\r
203 > > =C2=A0# define visible __attribute__((visibility("default&qu=
\r
205 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
\r
206 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
207 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here<b=
\r
209 > > #pragma GCC visibility push(hidden)<br>
\r
210 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
212 > > In file included from lib/parse-time-vrp.cc:23:<br>
\r
213 > > In file included from ./lib/database-private.h:33:<br>
\r
214 > > ./lib/notmuch-private.h:479:8: error: visibility does not match p=
\r
215 revious declaration<br>
\r
216 > > struct visible _notmuch_string_list {<br>
\r
217 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0^<br>
\r
218 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'vis=
\r
220 > > # define visible __attribute__((visibility("default")))=
\r
222 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
\r
223 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
224 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here<b=
\r
226 > > #pragma GCC visibility push(hidden)<br>
\r
227 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
228 > > 1 warning generated.<br>
\r
229 > > In file included from lib/directory.cc:21:<br>
\r
230 > > ./lib/notmuch-private.h:479:8: error: visibility does not match p=
\r
231 revious declaration<br>
\r
232 > > struct visible _notmuch_string_list {<br>
\r
233 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0^<br>
\r
234 > > ./lib/notmuch-private.h:67:33: note: expanded from macro 'vis=
\r
236 > > # define visible __attribute__((visibility("default")))=
\r
238 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
\r
239 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
240 > > ./lib/notmuch-private.h:52:13: note: previous attribute is here<b=
\r
242 > > #pragma GCC visibility push(hidden)<br>
\r
243 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
\r
245 > > and so on. I guess it is because the visibility differs between c=
\r
247 > > c++. I've disabled visibility locally, see second attached pa=
\r
249 > > of course that's not a solution, just a workaround. Suggestio=
\r
251 > > welcome.<br>
\r
253 > > Thanks,<br>
\r
254 > > =C2=A0Thomas<br>
\r
256 > > _______________________________________________<br>
\r
257 > > notmuch mailing list<br>
\r
258 > > <a href=3D"mailto:notmuch@notmuchmail.org">notmuch@notmuchmail.or=
\r
260 > > <a href=3D"http://notmuchmail.org/mailman/listinfo/notmuch">http:=
\r
261 //notmuchmail.org/mailman/listinfo/notmuch</a><br>
\r
265 --047d7b6dd09cda0cb204ef246ae9--
\r