FreeBSD Bugzilla – Attachment 238580 Details for
Bug 268204
mail/dovecot: fix build with clang 15
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
mail/dovecot: fix build with clang 15
mail__dovecot-fix-clang15-build-1.diff (text/plain), 7.09 KB, created by
Dimitry Andric
on 2022-12-06 19:18:17 UTC
(
hide
)
Description:
mail/dovecot: fix build with clang 15
Filename:
MIME Type:
Creator:
Dimitry Andric
Created:
2022-12-06 19:18:17 UTC
Size:
7.09 KB
patch
obsolete
>commit 0fc5a2281aced822d41686062b7a6573c6522eba >Author: Dimitry Andric <dim@FreeBSD.org> >Date: Tue Dec 6 19:43:51 2022 +0100 > > mail/dovecot: fix build with clang 15 > > During an exp-run for llvm 15 (see bug 265425), it turned out that > mail/dovecot failed to build with clang 15: > > ioloop-notify-kqueue.c:70:2: error: call to undeclared function 'i_gettimeofday'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > i_gettimeofday(&ioloop_timeval); > ^ > ioloop-notify-kqueue.c:70:2: note: did you mean 'gettimeofday'? > /usr/include/sys/time.h:617:5: note: 'gettimeofday' declared here > int gettimeofday(struct timeval *, struct timezone *); > ^ > ... > --- test-mail-index-transaction-update.o --- > test-mail-index-transaction-update.c:633:14: warning: comparison of function 'timezone' equal to a null pointer is always false [-Wtautological-pointer-compare] > test_assert(timezone == 0); > ^~~~~~~~ ~ > ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' > if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ > ^~~~ > test-mail-index-transaction-update.c:633:14: note: prefix with the address-of operator to silence this warning > test_assert(timezone == 0); > ^ > & > ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' > if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ > ^ > test-mail-index-transaction-update.c:648:42: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] > hdr.day_stamp = tests[i].old_day_stamp + timezone; > ^ ~~~~~~~~ > test-mail-index-transaction-update.c:648:17: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *(*)(int, int)' [-Wint-conversion] > hdr.day_stamp = tests[i].old_day_stamp + timezone; > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > test-mail-index-transaction-update.c:650:49: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] > mail_index_update_day_headers(t, tests[i].now + timezone); > ^ ~~~~~~~~ > test-mail-index-transaction-update.c:650:36: error: incompatible pointer to integer conversion passing 'char *(*)(int, int)' to parameter of type 'time_t' (aka 'long') [-Wint-conversion] > mail_index_update_day_headers(t, tests[i].now + timezone); > ^~~~~~~~~~~~~~~~~~~~~~~ > ./mail-index-transaction-private.h:127:77: note: passing argument to parameter 'day_stamp' here > void mail_index_update_day_headers(struct mail_index_transaction *t, time_t day_stamp); > ^ > test-mail-index-transaction-update.c:654:63: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] > test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); > ^ ~~~~~~~~ > ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx' > if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \ > ^~~~ > test-mail-index-transaction-update.c:654:37: warning: comparison between pointer and integer ('uint32_t' (aka 'unsigned int') and 'char *(*)(int, int)') [-Wpointer-integer-compare] > test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); > ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx' > if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \ > ^~~~ > > Fix these warnings and errors by importing: > https://github.com/dovecot/core/commit/e983ead775671186b3c8567d59973d2e52b678c7 > https://github.com/dovecot/core/commit/1a7b1f66fe4b86cb642dbcfe5a0192c1b77d0e17 > https://github.com/dovecot/core/commit/867a37fa7b74f798a931fb582214b5377f57610e > >diff --git a/mail/dovecot/files/patch-src_lib-index_test-mail-index-transaction-update.c b/mail/dovecot/files/patch-src_lib-index_test-mail-index-transaction-update.c >new file mode 100644 >index 000000000000..25e04fd9d9de >--- /dev/null >+++ b/mail/dovecot/files/patch-src_lib-index_test-mail-index-transaction-update.c >@@ -0,0 +1,38 @@ >+--- src/lib-index/test-mail-index-transaction-update.c.orig 2022-06-14 06:55:03 UTC >++++ src/lib-index/test-mail-index-transaction-update.c >+@@ -6,6 +6,7 @@ >+ #include "test-common.h" >+ #include "mail-index-private.h" >+ #include "mail-index-transaction-private.h" >++#include "utc-offset.h" >+ >+ #include <time.h> >+ >+@@ -630,7 +631,9 @@ static void test_mail_index_update_day_first_uid(void) >+ >+ /* daylight savings times were confusing these tests, so we'll now >+ just assume that TZ=UTC */ >+- test_assert(timezone == 0); >++ time_t now = time(NULL); >++ struct tm *local_time = localtime(&now); >++ test_assert(utc_offset(local_time, now) == 0); >+ >+ hdr.messages_count = 10; >+ t = mail_index_transaction_new(); >+@@ -645,13 +648,13 @@ static void test_mail_index_update_day_first_uid(void) >+ i_zero(&hdr); >+ for (j = 0; j < N_ELEMENTS(hdr.day_first_uid); j++) >+ hdr.day_first_uid[j] = 8-j; >+- hdr.day_stamp = tests[i].old_day_stamp + timezone; >++ hdr.day_stamp = tests[i].old_day_stamp; >+ memcpy(t->post_hdr_change, &hdr, sizeof(hdr)); >+- mail_index_update_day_headers(t, tests[i].now + timezone); >++ mail_index_update_day_headers(t, tests[i].now); >+ >+ struct mail_index_header new_hdr; >+ memcpy(&new_hdr, t->post_hdr_change, sizeof(new_hdr)); >+- test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); >++ test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp, i); >+ test_assert_idx(memcmp(new_hdr.day_first_uid, >+ tests[i].new_day_first_uid, >+ sizeof(uint32_t) * 8) == 0, i); >diff --git a/mail/dovecot/files/patch-src_lib_ioloop-notify-kqueue.c b/mail/dovecot/files/patch-src_lib_ioloop-notify-kqueue.c >new file mode 100644 >index 000000000000..b991392f8291 >--- /dev/null >+++ b/mail/dovecot/files/patch-src_lib_ioloop-notify-kqueue.c >@@ -0,0 +1,10 @@ >+--- src/lib/ioloop-notify-kqueue.c.orig 2022-06-14 06:55:03 UTC >++++ src/lib/ioloop-notify-kqueue.c >+@@ -11,6 +11,7 @@ >+ >+ #include "ioloop-private.h" >+ #include "llist.h" >++#include "time-util.h" >+ #include <unistd.h> >+ #include <fcntl.h> >+ #include <sys/types.h>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 268204
: 238580