xine-lib build failure with gcc 15

Xavier Bachelot via xine-devel <[email protected]> Mon, 27 Jan 2025 21:40:28 +0100
Newsgroups gmane.comp.video.xine.devel
Message-ID <[email protected]>
Hi,

A current snapshot of xine-lib (20241217 - 15302) fails to build with 
gcc 15.

Here's the excerpt of the log:

"""
In file included from builtins.c:41:
../input/input_file.c: In function 'file_input_class_get_dir':
../input/input_file.c:738:43: error: initialization of 'int (*)(void)' 
from incompatible pointer type 'int (*)(const xine_mrl_t *, const 
xine_mrl_t *)' {aka 'int (*)(const struct xine_mrl_s *, const struct 
xine_mrl_s *)'} [-Wincompatible-pointer-types]
   738 |   int                 (*func) ()        = 
file_input_sortfiles_default;
       |                                           
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../input/input_file.c:654:12: note: 'file_input_sortfiles_default' 
declared here
   654 | static int file_input_sortfiles_default (const xine_mrl_t *s1, 
const xine_mrl_t *s2) {
       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../input/input_file.c:918:59: error: passing argument 4 of 'qsort' from 
incompatible pointer type [-Wincompatible-pointer-types]
   918 |       qsort(dir_files, num_dir_files, sizeof(xine_mrl_t), func);
       |                                                           ^~~~
       |                                                           |
       |                                                           int 
(*)(void)
In file included from ../../include/xine/xineutils.h:27,
                  from ../../include/xine/input_plugin.h:28,
                  from ../../include/xine/xine_internal.h:35,
                  from builtins.h:26,
                  from builtins.c:29:
/usr/include/stdlib.h:971:34: note: expected '__compar_fn_t' {aka 'int 
(*)(const void *, const void *)'} but argument is of type 'int 
(*)(void)'
   971 |                    __compar_fn_t __compar) __nonnull ((1, 4));
       |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/stdlib.h:948:15: note: '__compar_fn_t' declared here
   948 | typedef int (*__compar_fn_t) (const void *, const void *);
       |               ^~~~~~~~~~~~~
../input/input_file.c:921:61: error: passing argument 4 of 'qsort' from 
incompatible pointer type [-Wincompatible-pointer-types]
   921 |       qsort(hide_files, num_hide_files, sizeof(xine_mrl_t), 
func);
       |                                                             ^~~~
       |                                                             |
       |                                                             int 
(*)(void)
/usr/include/stdlib.h:971:34: note: expected '__compar_fn_t' {aka 'int 
(*)(const void *, const void *)'} but argument is of type 'int 
(*)(void)'
   971 |                    __compar_fn_t __compar) __nonnull ((1, 4));
       |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/stdlib.h:948:15: note: '__compar_fn_t' declared here
   948 | typedef int (*__compar_fn_t) (const void *, const void *);
       |               ^~~~~~~~~~~~~
../input/input_file.c:924:61: error: passing argument 4 of 'qsort' from 
incompatible pointer type [-Wincompatible-pointer-types]
   924 |       qsort(norm_files, num_norm_files, sizeof(xine_mrl_t), 
func);
       |                                                             ^~~~
       |                                                             |
       |                                                             int 
(*)(void)
/usr/include/stdlib.h:971:34: note: expected '__compar_fn_t' {aka 'int 
(*)(const void *, const void *)'} but argument is of type 'int 
(*)(void)'
   971 |                    __compar_fn_t __compar) __nonnull ((1, 4));
       |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/stdlib.h:948:15: note: '__compar_fn_t' declared here
   948 | typedef int (*__compar_fn_t) (const void *, const void *);
       |               ^~~~~~~~~~~~~
make[3]: *** [Makefile:832: builtins.lo] Error 1
"""

Regards,
Xavier