tidalcycles / Dirt

Experimental sample playback
GNU General Public License v3.0
85 stars 24 forks source link

incompatible function pointer types build failure #66

Open chenrui333 opened 3 months ago

chenrui333 commented 3 months ago

Seeing some build failures with clang 15

clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o dirt.o dirt.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o common.o common.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o audio.o audio.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o file.o file.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o server.o server.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o jobqueue.o jobqueue.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o thpool.o thpool.c
clang -O3 -g -I/usr/local/include -I/opt/local/include -Wall -std=gnu99 -DDEBUG -DHACK -DJACK -DSCALEPAN   -c -o jack.o jack.c
server.c:244:50: error: incompatible function pointer types passing 'int (const char *, const char *, lo_arg **, int, void *, void *)' to parameter of type 'lo_method_handler' (aka 'int (*)(const char *, const char *, lo_arg **, int, struct lo_message_ *, void *)') [-Wincompatible-function-pointer-types]
  lo_server_thread_add_method(st, "/play", NULL, play_handler, NULL);
                                                 ^~~~~~~~~~~~
/opt/homebrew/include/lo/lo_serverthread.h:151:72: note: passing argument to parameter 'h' here
                               const char *typespec, lo_method_handler h,
                                                                       ^
server.c:246:47: error: incompatible function pointer types passing 'int (const char *, const char *, lo_arg **, int, void *, void *)' to parameter of type 'lo_method_handler' (aka 'int (*)(const char *, const char *, lo_arg **, int, struct lo_message_ *, void *)') [-Wincompatible-function-pointer-types]
  lo_server_thread_add_method(st, NULL, NULL, generic_handler, NULL);
                                              ^~~~~~~~~~~~~~~
/opt/homebrew/include/lo/lo_serverthread.h:151:72: note: passing argument to parameter 'h' here
                               const char *typespec, lo_method_handler h,
                                                                       ^
2 errors generated.
yaxu commented 2 months ago

I couldn't reproduce this under linux so it's a bit hard to fix. Does it compile with -Wno-error added to CFLAGS in the makefile?