panzi/qjoypad

overflow errors on build under 64bit musl, possibly others

Opened this issue · 2 comments

I'm trying to add qjoypad as a package under void linux, which builds for x86 and multiple arm archetectures, and when building on aarch64 I get the following errors:

[30/52] Building CXX object src/CMakeFiles/qjoypad.dir/joypad.cpp.o
FAILED: src/CMakeFiles/qjoypad.dir/joypad.cpp.o
/builddir/.xbps-qjoypad/wrappers/aarch64-linux-musl-c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -Isrc -I /usr/aarch64-linux-musl/usr/include/qt5 -I /usr/aarch64-linux-musl/usr/include/qt5/QtWidgets -I /usr/aarch64-linux-musl/usr/include/qt5/QtGui -I /usr/aarch64-linux-musl/usr/include/qt5/QtCore -I /usr/aarch64-linux-musl/usr/../usr/lib/qt5/mkspecs/linux-g++ -I /usr/aarch64-linux-musl/usr/include/qt5/QtX11Extras -fstack-clash-protection -D_FORTIFY_SOURCE=2 -O2 -march=armv8-a -I/usr/aarch64-linux-musl/usr/include -Wall -Wextra -Werror -pedantic -Wno-variadic-macros -fPIC -MD -MT src/CMakeFiles/qjoypad.dir/joypad.cpp.o -MF src/CMakeFiles/qjoypad.dir/joypad.cpp.o.d -o src/CMakeFiles/qjoypad.dir/joypad.cpp.o -c ../src/joypad.cpp
../src/joypad.cpp: In member function 'void JoyPad::open(int)':
../src/joypad.cpp:71:23: error: overflow in conversion from 'long unsigned int' to 'int' changes value from '2164288019' to '-2130679277' [-Werror=overflow]
71 | if (ioctl(joydev, JSIOCGNAME(sizeof(id)), id) < 0) {
| ^~~~~~~~~~
../src/joypad.cpp:80:20: error: overflow in conversion from 'long unsigned int' to 'int' changes value from '2147576337' to '-2147390959' [-Werror=overflow]
80 | ioctl (joydev, JSIOCGAXES, &axisCount);
| ^~~~~~~~~~
../src/joypad.cpp:82:20: error: overflow in conversion from 'long unsigned int' to 'int' changes value from '2147576338' to '-2147390958' [-Werror=overflow]
82 | ioctl (joydev, JSIOCGBUTTONS, &buttonCount);
| ^~~~~~~~~~~~~
cc1plus: all warnings being treated as errors

Any ideas?
-Michael.

Actually it looks like it might be failing under 64 bit musl. Still looking for feedback and a possible fix :-).
-Michael.

panzi commented

I don't see anything wrong at the referenced lines and I don't get any compile errors (using glibc). But you could try to remove -Werror from CMakeLists.txt.