On 29.07.24 23:41, Jeremy Bícha wrote:
Source: ffmpeg
Version: 7:7.0.1-4
Severity: serious
Tags: ftbfs sid trixie
User: debian-...@lists.debian.org
Usertags: ftbfs-gcc-14
User: debian-s...@lists.debian.org
Usertags: s390x
X-Debbugs-CC: locutusofb...@debian.org, debian-s...@lists.debian.org
ffmpeg fails to build on s390x (and several other big endian
architectures) after the switch to gcc-14. This is blocking the
completion of the ongoing ffmpeg 7 transition.
https://buildd.debian.org/status/package.php?p=ffmpeg
Build log excerpt
=============
src/libavcodec/pcm-bluray.c: In function ‘pcm_bluray_decode_frame’:
src/libavcodec/pcm-bluray.c:170:45: error: passing argument 2 of
‘bytestream2_get_buffer’ from incompatible pointer type
[-Wincompatible-pointer-types]
170 | bytestream2_get_buffer(&gb, dst16, buf_size);
| ^~~~~
| |
| int16_t * {aka short int *}
In file included from src/libavcodec/pcm-bluray.c:29:
src/libavcodec/bytestream.h:268:70: note: expected ‘uint8_t *’ {aka
‘unsigned char *’} but argument is of type ‘int16_t *’ {aka ‘short int
*’}
268 |
uint8_t *dst,
|
~~~~~~~~~^~~
src/libavcodec/pcm-bluray.c:190:49: error: passing argument 2 of
‘bytestream2_get_buffer’ from incompatible pointer type
[-Wincompatible-pointer-types]
190 | bytestream2_get_buffer(&gb, dst16,
avctx->ch_layout.nb_channels * 2);
| ^~~~~
| |
| int16_t * {aka
short int *}
src/libavcodec/bytestream.h:268:70: note: expected ‘uint8_t *’ {aka
‘unsigned char *’} but argument is of type ‘int16_t *’ {aka ‘short int
*’}
268 |
uint8_t *dst,
|
~~~~~~~~~^~~
TBH the conditional AV_HAVE_BIGENDIAN code just looks wrong. Optimally
get_be* would DTRT on big-endian?
Kind regards
Philipp Kern