W dniu 24.09.2015 o 14:01, Timo Sirainen pisze: > On 24 Sep 2015, at 13:43, Marcin Mirosław <mar...@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.