sooperlooper
sooperlooper copied to clipboard
fix permissive build issues with liblo callbacks
Building sooperlooper on gentoo fails with a lot of errors related to the gcc -fno-permissive being enabled by default. See the example error below.
This change replaces the 'void *data' parameters in liblo callbacks with 'lo_message data' and so removes those errors without having to enable -fpermissive.
Related gentoo bug: https://bugs.gentoo.org/925275
control_osc.cpp: In member function ‘void SooperLooper::ControlOSC::register_callbacks()’: control_osc.cpp:148:37: error: invalid conversion from ‘int (*)(const char*, const char*, lo_arg**, int, void*, void*)’ to ‘lo_method_handler’ {aka ‘int (*)(const char* , const char*, lo_arg**, int, lo_message_*, void*)’} [-fpermissive] 148 | lo_server_add_method(serv, "/quit", "", ControlOSC::_quit_handler, this); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | int (*)(const char*, const char*, lo_arg**, int, void*, void*) In file included from /usr/include/lo/lo.h:32, from control_osc.hpp:24, from control_osc.cpp:30: /usr/include/lo/lo_lowlevel.h:876:72: note: initializing argument 4 of ‘lo_method_* lo_server_add_method(lo_server, const char*, const char*, lo_method_handler, const void*)’ 876 | const char *typespec, lo_method_handler h, | ~~~~~~~~~~~~~~~~~~^
I had to do the same changes for arch. To bad I didn't see this before :)
Anyway, highly recommend to merge