W dniu 24.09.2015 o 14:01, Timo Sirainen pisze:> On 24 Sep 2015, at 13:43, Marcin Miros?aw <marcin at mejor.pl> wrote:
>>
>> W dniu 23.09.2015 o 15:30, Timo Sirainen pisze:
>>> http://dovecot.org/releases/2.2/rc/dovecot-2.2.19.rc1.tar.gz
>>> http://dovecot.org/releases/2.2/rc/dovecot-2.2.19.rc1.tar.gz.sig
>>>
>>> A lot of changes since v2.2.18, so here's a release candidate
first. If no bugs are reported, I'm planning on making the final release
sometimes this week. The most interesting new features here are the
imap-hibernate process, quota count backend and director/proxy improvements.
>>
>> Hi!
>> I'm getting compilation error using clang:
>>
>>> guid.c:106:2: error: array size is negative
>>> buffer_create_from_data(&buf, guid_r, GUID_128_SIZE);
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> ./buffer.h:23:8: note: expanded from macro
'buffer_create_from_data'
>>> (void)COMPILE_ERROR_IF_TRUE(__builtin_object_size((d),3)
< ((s)?(s):1)); \
>
> What happens if in src/lib/buffer.h line 23 you change the
__builtin_object_size((d),3) to __builtin_object_size((d),1)? Does it work?
Yes, it works. Now dovecot-2.2.19.rc1 compiles fine.
Thanks,
Marcin
P.S. Is such warnings something you care?> clang -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-settings
-I../../src/lib-master -DPKG_RUNDIR=\""/var/run/dovecot"\"
-DPKG_STATEDIR=\""/var/lib/dovecot"\"
-DPKG_LIBEXECDIR=\""/usr/libexec/dovecot"\"
-DBINDIR=\""/usr/bin"\" -std=gnu99 -O2 -march=native -Wall
-W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts
-Wformat=2 -Wbad-function-cast -Wno-duplicate-decl-specifier -Wstrict-aliasing=2
-c -o sd-daemon.o sd-daemon.c
> sd-daemon.c:56:19: warning: implicit declaration of function
'getenv' is invalid in C99 [-Wimplicit-function-declaration]
> if (!(e = getenv("LISTEN_PID"))) {
> ^
> sd-daemon.c:56:17: warning: incompatible integer to pointer conversion
assigning to 'const char *' from 'int' [-Wint-conversion]
> if (!(e = getenv("LISTEN_PID"))) {
> ^ ~~~~~~~~~~~~~~~~~~~~
> sd-daemon.c:62:13: warning: implicit declaration of function
'strtoul' is invalid in C99 [-Wimplicit-function-declaration]
> l = strtoul(e, &p, 10);
> ^
> sd-daemon.c:80:17: warning: incompatible integer to pointer conversion
assigning to 'const char *' from 'int' [-Wint-conversion]
> if (!(e = getenv("LISTEN_FDS"))) {
> ^ ~~~~~~~~~~~~~~~~~~~~
> sd-daemon.c:119:17: warning: implicit declaration of function
'unsetenv' is invalid in C99 [-Wimplicit-function-declaration]
> unsetenv("LISTEN_PID");
> ^
> sd-daemon.c:342:17: warning: incompatible integer to pointer conversion
assigning to 'const char *' from 'int' [-Wint-conversion]
> if (!(e = getenv("NOTIFY_SOCKET")))
> ^ ~~~~~~~~~~~~~~~~~~~~~~~
> sd-daemon.c:411:9: warning: implicit declaration of function 'free'
is invalid in C99 [-Wimplicit-function-declaration]
> free(p);
> ^
> 7 warnings generated.