[MPlayer-dev-eng] [PATCH] WIP: RFC: XXX: Unbreak build with GCC 14

Ingo Brückl ib at oddnet.de
Wed Apr 17 14:42:55 EEST 2024


On Mon, 15 Apr 2024 23:36:37 +0200, Alexander Strasser wrote:

> As always testing and comments very welcome!

When trying to do a shared build with current ffmpeg master, I get a
configuration error that FFmpeg is not found:

  Checking for FFmpeg ... Compiling without FFmpeg is currently not supported/working.
  Error: both internal and external FFmpeg missing

This is due to

  WARN_CFLAGS="-Werror-implicit-function-declaration"

in configure and a probably outdated /usr/include/bits/math-finite.h:

  error: implicit declaration of function 'lgamma_r'
  error: implicit declaration of function 'lgammaf_r'
  error: implicit declaration of function 'lgammal_r'

I had to change WARN_CFLAGS to

  WARN_CFLAGS="-Wno-error=implicit-function-declaration"

to configure.

Then the following errors occur when compiling (with nothing explicitly
disabled):

  libmpcodecs/vd_qtvideo.c: In function 'init':
  libmpcodecs/vd_qtvideo.c:132:20: error: assignment to 'char ** (*)(Size)' {aka char ** (*)(int)'} from incompatible pointer type 'OSErr (*)(Size)' {aka 'short int (*)(int)'} [-Wincompatible-pointer-types]
    132 |     NewHandleClear = (OSErr(*)(Size))GetProcAddress(handler, "NewHandleClear");
        |                    ^

  loader/ext.c: In function 'VirtualAlloc':
  loader/ext.c:447:17: error: assignment to 'LPVOID' {aka 'void *'} from 'unsigned int' makes pointer from integer without a cast [-Wint-conversion]
    447 |         address = (unsigned)address&~0xffff;
        |                 ^

  loader/module.c: In function 'report_func':
  loader/module.c:847:16: error: assignment to 'uint32_t' {aka 'unsigned int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
    847 |       reg->eax = malloc(((uint32_t *)stack_base)[1]);
        |                ^
  loader/module.c:855:16: error: assignment to 'uint32_t' {aka 'unsigned int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
    855 |       reg->eax = malloc(((uint32_t *)stack_base)[1]);
        |                ^

I had to --disable-win32dll, because there were a whole bunch of errors in
loader/win32.c and other loader/* files.

Ingo


More information about the MPlayer-dev-eng mailing list