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

Alexander Strasser eclipse7 at gmx.net
Fri Apr 19 23:00:41 EEST 2024


Hi Ingo!

On 2024-04-17 13:42 +0200, Ingo Brückl wrote:
> 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.


Thanks for the feedback.

You were compiling on x86 32bit?

Could you make it build in the end?


Greetings,
  Alexander


More information about the MPlayer-dev-eng mailing list