Re: git: 80ef111f0369 - main - mail/exim: unbreak build with LLVM15 (+)

From: Alexey Dokuchaev <danfe_at_freebsd.org>
Date: Wed, 15 Feb 2023 02:25:40 UTC
On Tue, Feb 14, 2023 at 11:43:54AM +0000, Dima Panov wrote:
> commit 80ef111f0369fb10e3a890613460fe45cb1a97ba
> 
>   mail/exim: unbreak build with LLVM15 (+)
> 
>   Pass -Wno-int-conversion to CFLAGS fixes error with strict
>   conversion rules introduced in LLVM15
> 
>     error: incompatible pointer to integer conversion passing
>    'char *' to parameter of type 'BOOL' (aka 'unsigned int')
>    [-Wint-conversion]

There's actually bug in the code.  The comment prior to smtp_printf()
implementation says that the extra BOOL argument tells whether "further
is data expected".  Looking at other invocations of it, including those
for error 451, it should be FALSE here.

Consider the following change:

diff --git a/mail/exim/Makefile b/mail/exim/Makefile
index 9b628a088d3d..2242ff7608fa 100644
--- a/mail/exim/Makefile
+++ b/mail/exim/Makefile
@@ -21,9 +21,6 @@ USES=         compiler cpe tar:bzip2 perl5
 USE_CSTD=      c99
 USE_PERL5=     run
 
-# LLVM15 workaround
-CFLAGS=                -Wno-int-conversion
-
 # Exim build system is job unsafe atm
 MAKE_JOBS_UNSAFE=      yes
 # One can tune the following "hidden" knobs:
diff --git a/mail/exim/files/extra-patch-Local-sa-exim.c
b/mail/exim/files/extra-patch-Local-sa-exim.c
index 103027b1f44d..b3343e3c5e26 100644
--- a/mail/exim/files/extra-patch-Local-sa-exim.c
+++ b/mail/exim/files/extra-patch-Local-sa-exim.c
@@ -193,7 +193,7 @@
 -              str=string_sprintf(string_sprintf("451-
%s\r\n",SAmsgteergrubewait), spamstatus);
 -              fprintf(smtp_out, str);
 -              ret=fflush(smtp_out);
-+              smtp_printf("451-%s\r\n", teergrubewaitstr);
++              smtp_printf("451-%s\r\n", FALSE, teergrubewaitstr);
 +              ret=smtp_fflush();
                if (ret != 0)
                {

./danfe