ZDoom / ZMusic

GZDoom's music system as a standalone library
https://forum.zdoom.org/index.php
60 stars 32 forks source link

Build fail with GCC 4.9 #47

Closed Zenitur closed 3 months ago

Zenitur commented 1 year ago
[ 50%] Building CXX object thirdparty/adlmidi/CMakeFiles/adl.dir/chips/dosbox/dbopl.cpp.o
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp: In member function ‘void DBOPL::Handler::GenerateArr(Bit16s*, Bitu*)’:
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1716:65: error: ‘INT16_MAX’ was not declared in this scope
   out[i] = static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                                                 ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1689:24: note: in definition of macro ‘DB_MAX’
 #define DB_MAX(x, y) ((x) > (y) ? (x) : (y))
                        ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1692:41: note: in expansion of macro ‘DB_MIN’
 #define DBOPL_CLAMP(V, MIN, MAX) DB_MAX(DB_MIN(V, (MAX)), (MIN))
                                         ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1716:32: note: in expansion of macro ‘DBOPL_CLAMP’
   out[i] = static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1716:54: error: ‘INT16_MIN’ was not declared in this scope
   out[i] = static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                                      ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1689:30: note: in definition of macro ‘DB_MAX’
 #define DB_MAX(x, y) ((x) > (y) ? (x) : (y))
                              ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1716:32: note: in expansion of macro ‘DBOPL_CLAMP’
   out[i] = static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp: In member function ‘void DBOPL::Handler::GenerateArrMix(Bit16s*, Bitu*)’:
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1741:66: error: ‘INT16_MAX’ was not declared in this scope
   out[i] += static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                                                  ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1689:24: note: in definition of macro ‘DB_MAX’
 #define DB_MAX(x, y) ((x) > (y) ? (x) : (y))
                        ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1692:41: note: in expansion of macro ‘DB_MIN’
 #define DBOPL_CLAMP(V, MIN, MAX) DB_MAX(DB_MIN(V, (MAX)), (MIN))
                                         ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1741:33: note: in expansion of macro ‘DBOPL_CLAMP’
   out[i] += static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                 ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1741:55: error: ‘INT16_MIN’ was not declared in this scope
   out[i] += static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                                       ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1689:30: note: in definition of macro ‘DB_MAX’
 #define DB_MAX(x, y) ((x) > (y) ? (x) : (y))
                              ^
/home/gaben/ZMusic-1.1.3/thirdparty/adlmidi/chips/dosbox/dbopl.cpp:1741:33: note: in expansion of macro ‘DBOPL_CLAMP’
   out[i] += static_cast<Bit16s>(DBOPL_CLAMP(out32[i], INT16_MIN, INT16_MAX));
                                 ^
make[2]: *** [thirdparty/adlmidi/CMakeFiles/adl.dir/chips/dosbox/dbopl.cpp.o] Error 1
make[1]: *** [thirdparty/adlmidi/CMakeFiles/adl.dir/all] Error 2
make: *** [all] Error 2
coelckers commented 3 months ago

I cannot see how this can even happen unless the code got modified. The missing constants in here get defined in the file itself if the compiler's headers don't.