Re: cyrus-imapd: FTBFS on arm*, i386, mipsel, ppc64el and s390x
On 2020-05-12 01:04 +0200, John Paul Adrian Glaubitz wrote: > On 5/12/20 1:01 AM, John Paul Adrian Glaubitz wrote: > > On 5/11/20 11:56 PM, Xavier wrote: > >> Could someone help us here ? I forwarded this bug to upstream ([1]) but > >> didn't receive any response for now. > >> > >> (Cc to RFH bug) > > > > The problem here is va_list. On some architectures, the calling convention > > doesn't seem to allow comparing va_list against NULL due to the way va_list > > is implemented on a particular architecture. > Correction: The va_list problem seems to affect ARM architectures only. This is a classic 'porting to arm' issue which used to catch people out regularly 15 years ago because it was something where you could do technically incorrect things that worked fine on other architectures. It's a very long time since I saw something hit this issue. Thanks for the patch Adrian. Wookey -- Principal hats: Linaro, Debian, Wookware, ARM http://wookware.org/ signature.asc Description: PGP signature
Re: cyrus-imapd: FTBFS on arm*, i386, mipsel, ppc64el and s390x
On Tue, May 12, 2020 at 01:04:06AM +0200, John Paul Adrian Glaubitz wrote: > On 5/12/20 1:01 AM, John Paul Adrian Glaubitz wrote: > > On 5/11/20 11:56 PM, Xavier wrote: > >> Could someone help us here ? I forwarded this bug to upstream ([1]) but > >> didn't receive any response for now. > >> > >> (Cc to RFH bug) > > > > The problem here is va_list. On some architectures, the calling convention > > doesn't seem to allow comparing va_list against NULL due to the way va_list > > is implemented on a particular architecture. > Correction: The va_list problem seems to affect ARM architectures only According to the standard va_list is a complete object type. There is therefore no guarantee it can be compared to NULL and it is only by accident (implementation detail) that is possible to do so on some architectures. Cheers, Michael.
Re: cyrus-imapd: FTBFS on arm*, i386, mipsel, ppc64el and s390x
On 5/12/20 1:01 AM, John Paul Adrian Glaubitz wrote: > On 5/11/20 11:56 PM, Xavier wrote: >> Could someone help us here ? I forwarded this bug to upstream ([1]) but >> didn't receive any response for now. >> >> (Cc to RFH bug) > > The problem here is va_list. On some architectures, the calling convention > doesn't seem to allow comparing va_list against NULL due to the way va_list > is implemented on a particular architecture. Correction: The va_list problem seems to affect ARM architectures only. The other architectures have testsuite failures which seem unrelated. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Re: cyrus-imapd: FTBFS on arm*, i386, mipsel, ppc64el and s390x
Hi Xavier! On 5/11/20 11:56 PM, Xavier wrote: > Could someone help us here ? I forwarded this bug to upstream ([1]) but > didn't receive any response for now. > > (Cc to RFH bug) The problem here is va_list. On some architectures, the calling convention doesn't seem to allow comparing va_list against NULL due to the way va_list is implemented on a particular architecture. You could maybe add an auxiliary boolean variable to control whether "va_list args" is empty or not, i.e. something like this: Index: cyrus-imapd-3.2.0/imap/httpd.c === --- cyrus-imapd-3.2.0.orig/imap/httpd.c +++ cyrus-imapd-3.2.0/imap/httpd.c @@ -2350,7 +2350,7 @@ EXPORTED void simple_hdr(struct transact simple_hdr(txn, "Access-Control-Expose-Headers", hdr) static void comma_list_body(struct buf *buf, -const char *vals[], unsigned flags, va_list args) +const char *vals[], unsigned flags, int has_args, va_list args) { const char *sep = ""; int i; @@ -2358,11 +2358,11 @@ static void comma_list_body(struct buf * for (i = 0; vals[i]; i++) { if (flags & (1 << i)) { buf_appendcstr(buf, sep); -if (args) buf_vprintf(buf, vals[i], args); +if (has_args) buf_vprintf(buf, vals[i], args); else buf_appendcstr(buf, vals[i]); sep = ", "; } -else if (args) { +else if (has_args) { /* discard any unused args */ vsnprintf(NULL, 0, vals[i], args); } @@ -2377,7 +2377,7 @@ EXPORTED void comma_list_hdr(struct tran va_start(args, flags); -comma_list_body(, vals, flags, args); +comma_list_body(, vals, flags, 1, args); va_end(args); @@ -3077,17 +3077,17 @@ EXPORTED void response_header(long code, } if (code == HTTP_SWITCH_PROT || code == HTTP_UPGRADE) { buf_printf(logbuf, "%supgrade=", sep); -comma_list_body(logbuf, upgrd_tokens, txn->flags.upgrade, NULL); +comma_list_body(logbuf, upgrd_tokens, txn->flags.upgrade, 0, 0); sep = "; "; } if (txn->flags.te) { buf_printf(logbuf, "%stx-encoding=", sep); -comma_list_body(logbuf, te, txn->flags.te, NULL); +comma_list_body(logbuf, te, txn->flags.te, 0, 0); sep = "; "; } if (txn->resp_body.enc.proc) { buf_printf(logbuf, "%scnt-encoding=", sep); -comma_list_body(logbuf, ce, txn->resp_body.enc.type, NULL); +comma_list_body(logbuf, ce, txn->resp_body.enc.type, 0, 0); sep = "; "; } if (txn->location) { Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 Description: Don't try to compare va_list against NULL Author: John Paul Adrian Glaubitz Last-Update: 2020-05-12 Index: cyrus-imapd-3.2.0/imap/httpd.c === --- cyrus-imapd-3.2.0.orig/imap/httpd.c +++ cyrus-imapd-3.2.0/imap/httpd.c @@ -2350,7 +2350,7 @@ EXPORTED void simple_hdr(struct transact simple_hdr(txn, "Access-Control-Expose-Headers", hdr) static void comma_list_body(struct buf *buf, -const char *vals[], unsigned flags, va_list args) +const char *vals[], unsigned flags, int has_args, va_list args) { const char *sep = ""; int i; @@ -2358,11 +2358,11 @@ static void comma_list_body(struct buf * for (i = 0; vals[i]; i++) { if (flags & (1 << i)) { buf_appendcstr(buf, sep); -if (args) buf_vprintf(buf, vals[i], args); +if (has_args) buf_vprintf(buf, vals[i], args); else buf_appendcstr(buf, vals[i]); sep = ", "; } -else if (args) { +else if (has_args) { /* discard any unused args */ vsnprintf(NULL, 0, vals[i], args); } @@ -2377,7 +2377,7 @@ EXPORTED void comma_list_hdr(struct tran va_start(args, flags); -comma_list_body(, vals, flags, args); +comma_list_body(, vals, flags, 1, args); va_end(args); @@ -3077,17 +3077,17 @@ EXPORTED void response_header(long code, } if (code == HTTP_SWITCH_PROT || code == HTTP_UPGRADE) { buf_printf(logbuf, "%supgrade=", sep); -comma_list_body(logbuf, upgrd_tokens, txn->flags.upgrade, NULL); +comma_list_body(logbuf, upgrd_tokens, txn->flags.upgrade, 0, 0); sep = "; "; } if (txn->flags.te) { buf_printf(logbuf, "%stx-encoding=", sep); -comma_list_body(logbuf, te, txn->flags.te, NULL); +comma_list_body(logbuf, te, txn->flags.te, 0, 0); sep = "; "; } if (txn->resp_body.enc.proc) { buf_printf(logbuf, "%scnt-encoding=", sep); -
Re: cyrus-imapd: FTBFS on arm*, i386, mipsel, ppc64el and s390x
> cyrus-imapd failed to build on almost all architectures. See > https://buildd.debian.org/status/fetch.php?pkg=cyrus-imapd=i386=3.2.0-1=1588581560=0 > and > https://buildd.debian.org/status/fetch.php?pkg=cyrus-imapd=arm64=3.2.0-1=1588581432=0 > for examples. Hi, Could someone help us here ? I forwarded this bug to upstream ([1]) but didn't receive any response for now. (Cc to RFH bug) Cheers, Xavier [1]: https://github.com/cyrusimap/cyrus-imapd/issues/3040
Re: Bug#953235: vtkplotter: autopkgtest arm64 failure: No module named 'vtkIOFFMPEGPython'
On Mon, May 11, 2020 at 08:31:37AM +0200, Mathieu Malaterre wrote: > On Sun, May 10, 2020 at 10:01 PM Paul Gevers wrote: >... > > On 10-05-2020 15:25, Paul Gevers wrote: > > > I'm running another check on "cannot allocate memory in static TLS > > > block" now, will take a while. > > > > Also for this one, only vtkplotter showed up. > > Did you check #951704 ? This affect python3 package using jemalloc. I wrote earlier: On Thu, May 07, 2020 at 01:16:15PM +0300, Adrian Bunk wrote: >... > #951704 looks like a similar but unrelated problem with jemalloc. >... My current knowledge is: The jemalloc problem is a problem affecting all architectures, that will likely need a fix/workaround in jemalloc. The libgomp problem is a problem only on arm64/ppc64/ppc64el where upstreams seem to finally have agreed where it should be fixed (glibc). cu Adrian
Re: Bug#953235: vtkplotter: autopkgtest arm64 failure: No module named 'vtkIOFFMPEGPython'
On Sun, May 10, 2020 at 10:01 PM Paul Gevers wrote: > > Hi Adrian, > > On 10-05-2020 15:25, Paul Gevers wrote: > > I'm running another check on "cannot allocate memory in static TLS > > block" now, will take a while. > > Also for this one, only vtkplotter showed up. Did you check #951704 ? This affect python3 package using jemalloc. > Paul > -- Mathieu