libsdl-org / SDL

Simple Directmedia Layer
https://libsdl.org
zlib License
9.79k stars 1.82k forks source link

SDL_windows_gaming_input.c fails compiling in MSYS2/MinGW and GCC 12.1 for Win32 #5728

Closed LigH-de closed 2 years ago

LigH-de commented 2 years ago

Compiling SDL in media-autobuild_suite recently fails. Excerpt frrom build log:

CPPFLAGS: -D_FORTIFY_SOURCE=0 -D__USE_MINGW_ANSI_STDIO=1
CFLAGS: -mthreads -mtune=generic -O2 -pipe
CXXFLAGS: -mthreads -mtune=generic -O2 -pipe
LDFLAGS: -pipe -static-libgcc -static-libstdc++
make -j4 

...

../src/joystick/windows/SDL_windows_gaming_input.c: In function 'WGI_JoystickOpen':
../src/joystick/windows/SDL_windows_gaming_input.c:657:13: error: unknown type name '__FIReference_1_int'; did you mean '__FIReference_1_INT32'?
  657 |             __FIReference_1_int *full_capacityP, *curr_capacityP;
      |             ^~~~~~~~~~~~~~~~~~~
      |             __FIReference_1_INT32
In file included from G:/MABS/msys64/mingw32/include/windows.gaming.input.h:622,
                 from ../src/joystick/windows/SDL_windows_gaming_input.c:33:
../src/joystick/windows/SDL_windows_gaming_input.c:659:114: warning: passing argument 2 of 'report->lpVtbl->get_FullChargeCapacityInMilliwattHours' from incompatible pointer type [-Wincompatible-pointer-types]
  659 |             hr = __x_ABI_CWindows_CDevices_CPower_CIBatteryReport_get_FullChargeCapacityInMilliwattHours(report, &full_capacityP);
      |                                                                                                                  ^~~~~~~~~~~~~~~
      |                                                                                                                  |
      |                                                                                                                  int **
../src/joystick/windows/SDL_windows_gaming_input.c:659:114: note: expected '__FIReference_1_INT32 **' but argument is of type 'int **'
../src/joystick/windows/SDL_windows_gaming_input.c:661:17: warning: implicit declaration of function '__FIReference_1_int_get_Value' [-Wimplicit-function-declaration]
  661 |                 __FIReference_1_int_get_Value(full_capacityP, &full_capacity);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/joystick/windows/SDL_windows_gaming_input.c:662:17: warning: implicit declaration of function '__FIReference_1_int_Release' [-Wimplicit-function-declaration]
  662 |                 __FIReference_1_int_Release(full_capacityP);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/joystick/windows/SDL_windows_gaming_input.c:665:113: warning: passing argument 2 of 'report->lpVtbl->get_RemainingCapacityInMilliwattHours' from incompatible pointer type [-Wincompatible-pointer-types]
  665 |             hr = __x_ABI_CWindows_CDevices_CPower_CIBatteryReport_get_RemainingCapacityInMilliwattHours(report, &curr_capacityP);
      |                                                                                                                 ^~~~~~~~~~~~~~~
      |                                                                                                                 |
      |                                                                                                                 int **
../src/joystick/windows/SDL_windows_gaming_input.c:665:113: note: expected '__FIReference_1_INT32 **' but argument is of type 'int **'
make: *** [Makefile:730: build/SDL_windows_gaming_input.lo] Error 1
make: *** Waiting for unfinished jobs....
/bin/sh ../build-scripts//updaterev.sh
  CC     build/SDL.lo
  CC     build/SDL_windows_gaming_input.lo
../src/joystick/windows/SDL_windows_gaming_input.c: In function 'WGI_JoystickOpen':
../src/joystick/windows/SDL_windows_gaming_input.c:657:13: error: unknown type name '__FIReference_1_int'; did you mean '__FIReference_1_INT32'?
  657 |             __FIReference_1_int *full_capacityP, *curr_capacityP;
      |             ^~~~~~~~~~~~~~~~~~~
      |             __FIReference_1_INT32
In file included from G:/MABS/msys64/mingw32/include/windows.gaming.input.h:622,
                 from ../src/joystick/windows/SDL_windows_gaming_input.c:33:
../src/joystick/windows/SDL_windows_gaming_input.c:659:114: warning: passing argument 2 of 'report->lpVtbl->get_FullChargeCapacityInMilliwattHours' from incompatible pointer type [-Wincompatible-pointer-types]
  659 |             hr = __x_ABI_CWindows_CDevices_CPower_CIBatteryReport_get_FullChargeCapacityInMilliwattHours(report, &full_capacityP);
      |                                                                                                                  ^~~~~~~~~~~~~~~
      |                                                                                                                  |
      |                                                                                                                  int **
../src/joystick/windows/SDL_windows_gaming_input.c:659:114: note: expected '__FIReference_1_INT32 **' but argument is of type 'int **'
../src/joystick/windows/SDL_windows_gaming_input.c:661:17: warning: implicit declaration of function '__FIReference_1_int_get_Value' [-Wimplicit-function-declaration]
  661 |                 __FIReference_1_int_get_Value(full_capacityP, &full_capacity);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/joystick/windows/SDL_windows_gaming_input.c:662:17: warning: implicit declaration of function '__FIReference_1_int_Release' [-Wimplicit-function-declaration]
  662 |                 __FIReference_1_int_Release(full_capacityP);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/joystick/windows/SDL_windows_gaming_input.c:665:113: warning: passing argument 2 of 'report->lpVtbl->get_RemainingCapacityInMilliwattHours' from incompatible pointer type [-Wincompatible-pointer-types]
  665 |             hr = __x_ABI_CWindows_CDevices_CPower_CIBatteryReport_get_RemainingCapacityInMilliwattHours(report, &curr_capacityP);
      |                                                                                                                 ^~~~~~~~~~~~~~~
      |                                                                                                                 |
      |                                                                                                                 int **
../src/joystick/windows/SDL_windows_gaming_input.c:665:113: note: expected '__FIReference_1_INT32 **' but argument is of type 'int **'
make: *** [Makefile:730: build/SDL_windows_gaming_input.lo] Error 1

logs.zip gathered by media-autobuild_suite

sezero commented 2 years ago

This is a dup of https://github.com/libsdl-org/SDL/issues/5589

LigH-de commented 2 years ago

Thanks, forwarding this to let MABS authors know.