From 07f89fd6b5130b886ba20cf4e8a2f1022853fb14 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 18:43:42 -0400 Subject: [PATCH 1/9] Makefile: stop building with DWARF v2 debugging info --- src/win32/Makefile.cfg | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/win32/Makefile.cfg b/src/win32/Makefile.cfg index 1880abf18..73d236604 100644 --- a/src/win32/Makefile.cfg +++ b/src/win32/Makefile.cfg @@ -36,10 +36,6 @@ ifndef GCC44 #OPTS+=-mms-bitfields endif -ifndef MINGW64 - OPTS+=-gdwarf-2 -endif - ifndef SDL OPTS+=-D_WINDOWS endif From d5cc3ce48daf594fc64ecdbaeceb5c537cf5bf72 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 20:27:57 -0400 Subject: [PATCH 2/9] Makefile: support GCC 9.1 --- src/Makefile.cfg | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index a0398154a..5fdc53298 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -7,11 +7,19 @@ # and other things # -ifdef GCC81 -GCC80=1 +ifdef GCC91 +GCC83=1 endif -ifdef GCC80 +ifdef GCC83 +GCC82=1 +endif + +ifdef GCC82 +GCC81=1 +endif + +ifdef GCC81 GCC72=1 endif From 5a79a446dfc3632de3e27567afd65d9782510739 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 21:25:46 -0400 Subject: [PATCH 3/9] Tested to be compile with Mingw64 9.1.0 --- appveyor.yml | 2 +- src/Makefile.cfg | 3 +++ src/i_addrinfo.c | 12 ++++++------ src/m_misc.c | 2 +- src/sdl/i_system.c | 16 ++++++++-------- src/win32/fabdxlib.c | 2 +- src/win32/win_sys.c | 12 ++++++------ 7 files changed, 26 insertions(+), 23 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 98da61dbf..75442145a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -92,7 +92,7 @@ before_build: - ccache -V - ccache -s - if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" ) -- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 GCC72=1 NOOBJDUMP=1 %NOUPX%" +- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 GCC91=1 NOOBJDUMP=1 %NOUPX%" - if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1" ) else ( set "MINGW_FLAGS=MINGW=1" ) - set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1" diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 5fdc53298..738b05330 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -194,6 +194,9 @@ ifndef GCC295 endif endif WFLAGS+=-Wformat-y2k +ifdef GCC71 +WFLAGS+=-Wno-error=format-overflow=2 +endif WFLAGS+=-Wformat-security ifndef GCC29 #WFLAGS+=-Winit-self diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c index 03edf732d..42d4b8924 100644 --- a/src/i_addrinfo.c +++ b/src/i_addrinfo.c @@ -74,10 +74,10 @@ static int inet_aton(const char *cp, struct in_addr *addr) #ifdef USE_WINSOCK2 static HMODULE ipv6dll = NULL; -typedef int (WSAAPI *p_getaddrinfo) (const char *node, const char *service, - const struct my_addrinfo *hints, - struct my_addrinfo **res); -typedef void (WSAAPI *p_freeaddrinfo) (struct my_addrinfo *res); +typedef int (WSAAPI *p_getaddrinfo) (const char *, const char *, + const struct my_addrinfo *, + struct my_addrinfo **); +typedef void (WSAAPI *p_freeaddrinfo) (struct my_addrinfo *); static p_getaddrinfo WS_getaddrinfo = NULL; static p_freeaddrinfo WS_freeaddrinfo = NULL; @@ -86,10 +86,10 @@ static HMODULE WS_getfunctions(HMODULE tmp) { if (tmp != NULL) { - WS_getaddrinfo = (p_getaddrinfo)GetProcAddress(tmp, "getaddrinfo"); + WS_getaddrinfo = (p_getaddrinfo)(LPVOID)GetProcAddress(tmp, "getaddrinfo"); if (WS_getaddrinfo == NULL) return NULL; - WS_freeaddrinfo = (p_freeaddrinfo)GetProcAddress(tmp, "freeaddrinfo"); + WS_freeaddrinfo = (p_freeaddrinfo)(LPVOID)GetProcAddress(tmp, "freeaddrinfo"); if (WS_freeaddrinfo == NULL) { WS_getaddrinfo = NULL; diff --git a/src/m_misc.c b/src/m_misc.c index 0445136fe..c5e4fa21c 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #endif #endif -#if defined(__MINGW32__) && ((__GNUC__ > 7) || (__GNUC__ == 6 && __GNUC_MINOR__ >= 3)) +#if defined(__MINGW32__) && ((__GNUC__ > 7) || (__GNUC__ == 6 && __GNUC_MINOR__ >= 3)) && (__GNUC__ < 8) #define PRIdS "u" #elif defined (_WIN32) #define PRIdS "Iu" diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c index 517c183ee..a18443c52 100644 --- a/src/sdl/i_system.c +++ b/src/sdl/i_system.c @@ -1480,7 +1480,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - strncpy(joyname, tempname, 255); + strncpy(joyname, tempname, 254); } SDL_QuitSubSystem(SDL_INIT_JOYSTICK); } @@ -1488,7 +1488,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - strncpy(joyname, tempname, 255); + strncpy(joyname, tempname, 254); } return joyname; } @@ -2043,7 +2043,7 @@ static void I_ShutdownTimer(void) pfntimeGetTime = NULL; if (winmm) { - p_timeEndPeriod pfntimeEndPeriod = (p_timeEndPeriod)GetProcAddress(winmm, "timeEndPeriod"); + p_timeEndPeriod pfntimeEndPeriod = (p_timeEndPeriod)(LPVOID)GetProcAddress(winmm, "timeEndPeriod"); if (pfntimeEndPeriod) pfntimeEndPeriod(1); FreeLibrary(winmm); @@ -2088,10 +2088,10 @@ void I_StartupTimer(void) winmm = LoadLibraryA("winmm.dll"); if (winmm) { - p_timeEndPeriod pfntimeBeginPeriod = (p_timeEndPeriod)GetProcAddress(winmm, "timeBeginPeriod"); + p_timeEndPeriod pfntimeBeginPeriod = (p_timeEndPeriod)(LPVOID)GetProcAddress(winmm, "timeBeginPeriod"); if (pfntimeBeginPeriod) pfntimeBeginPeriod(1); - pfntimeGetTime = (p_timeGetTime)GetProcAddress(winmm, "timeGetTime"); + pfntimeGetTime = (p_timeGetTime)(LPVOID)GetProcAddress(winmm, "timeGetTime"); } I_AddExitFunc(I_ShutdownTimer); #endif @@ -2390,7 +2390,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) if (!testwin95) { - pfnGetDiskFreeSpaceEx = (p_GetDiskFreeSpaceExA)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetDiskFreeSpaceExA"); + pfnGetDiskFreeSpaceEx = (p_GetDiskFreeSpaceExA)(LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetDiskFreeSpaceExA"); testwin95 = true; } if (pfnGetDiskFreeSpaceEx) @@ -2414,7 +2414,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) char *I_GetUserName(void) { - static char username[MAXPLAYERNAME]; + static char username[MAXPLAYERNAME+1]; char *p; #ifdef _WIN32 DWORD i = MAXPLAYERNAME; @@ -2910,7 +2910,7 @@ const CPUInfoFlags *I_CPUInfo(void) #if defined (_WIN32) static CPUInfoFlags WIN_CPUInfo; SYSTEM_INFO SI; - p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); + p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)(LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); ZeroMemory(&WIN_CPUInfo,sizeof (WIN_CPUInfo)); if (pfnCPUID) diff --git a/src/win32/fabdxlib.c b/src/win32/fabdxlib.c index c19b036a0..45ec5d0d3 100644 --- a/src/win32/fabdxlib.c +++ b/src/win32/fabdxlib.c @@ -147,7 +147,7 @@ static inline BOOL LoadDirectDraw(VOID) DDrawDLL = LoadLibraryA("DDRAW.DLL"); if (DDrawDLL == NULL) return false; - pfnDirectDrawCreate = (DDCreate)GetProcAddress(DDrawDLL, "DirectDrawCreate"); + pfnDirectDrawCreate = (DDCreate)(LPVOID)GetProcAddress(DDrawDLL, "DirectDrawCreate"); if (pfnDirectDrawCreate == NULL) return false; return true; diff --git a/src/win32/win_sys.c b/src/win32/win_sys.c index 8b7adf7c6..d10f73b58 100644 --- a/src/win32/win_sys.c +++ b/src/win32/win_sys.c @@ -3395,7 +3395,7 @@ BOOL LoadDirectInput(VOID) DInputDLL = LoadLibraryA("DINPUT.DLL"); if (DInputDLL == NULL) return false; - pfnDirectInputCreateA = (DICreateA)GetProcAddress(DInputDLL, "DirectInputCreateA"); + pfnDirectInputCreateA = (DICreateA)(LPVOID)GetProcAddress(DInputDLL, "DirectInputCreateA"); if (pfnDirectInputCreateA == NULL) return false; return true; @@ -3529,7 +3529,7 @@ void I_GetDiskFreeSpace(INT64* freespace) if (!testwin95) { - pfnGetDiskFreeSpaceEx = (p_GetDiskFreeSpaceExA)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetDiskFreeSpaceExA"); + pfnGetDiskFreeSpaceEx = (p_GetDiskFreeSpaceExA)(LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetDiskFreeSpaceExA"); testwin95 = true; } if (pfnGetDiskFreeSpaceEx) @@ -3615,7 +3615,7 @@ const CPUInfoFlags *I_CPUInfo(void) { static CPUInfoFlags WIN_CPUInfo; SYSTEM_INFO SI; - p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); + p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)(LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); ZeroMemory(&WIN_CPUInfo,sizeof (WIN_CPUInfo)); if (pfnCPUID) @@ -3658,9 +3658,9 @@ static p_SetProcessAffinityMask pfnSetProcessAffinityMask = NULL; static inline VOID GetAffinityFuncs(VOID) { HMODULE h = GetModuleHandleA("kernel32.dll"); - pfnGetCurrentProcess = (p_GetCurrentProcess)GetProcAddress(h, "GetCurrentProcess"); - pfnGetProcessAffinityMask = (p_GetProcessAffinityMask)GetProcAddress(h, "GetProcessAffinityMask"); - pfnSetProcessAffinityMask = (p_SetProcessAffinityMask)GetProcAddress(h, "SetProcessAffinityMask"); + pfnGetCurrentProcess = (p_GetCurrentProcess)(LPVOID)GetProcAddress(h, "GetCurrentProcess"); + pfnGetProcessAffinityMask = (p_GetProcessAffinityMask)(LPVOID)GetProcAddress(h, "GetProcessAffinityMask"); + pfnSetProcessAffinityMask = (p_SetProcessAffinityMask)(LPVOID)GetProcAddress(h, "SetProcessAffinityMask"); } static void CPUAffinity_OnChange(void) From 749c2753e464f9628e68c8a2bca65acbdaa202d5 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 22:19:22 -0400 Subject: [PATCH 4/9] Try to compile with AppVeyor's GCC 9.1.0 --- src/Makefile.cfg | 6 ++++++ src/d_clisrv.c | 2 +- src/dehacked.c | 8 ++++---- src/hu_stuff.c | 2 +- src/p_spec.c | 2 +- src/v_video.c | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 738b05330..d9fee7559 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -154,6 +154,9 @@ ifdef GCC43 endif endif WFLAGS+=-Wsign-compare +ifdef GCC91 + WFLAGS+=-Wno-error=address-of-packed-member +endif ifdef GCC45 WFLAGS+=-Wlogical-op endif @@ -238,6 +241,9 @@ ifdef GCC80 WFLAGS+=-Wno-error=format-overflow WFLAGS+=-Wno-error=stringop-truncation WFLAGS+=-Wno-error=stringop-overflow +ifdef GCC91 + WFLAGS+=-Werror=-Wstringop-overflow=2 +endif WFLAGS+=-Wno-format-overflow WFLAGS+=-Wno-stringop-truncation WFLAGS+=-Wno-stringop-overflow diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 274fe398a..6c5b56f81 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1242,7 +1242,7 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime) netbuffer->u.serverinfo.cheatsenabled = CV_CheatsEnabled(); netbuffer->u.serverinfo.isdedicated = (UINT8)dedicated; strncpy(netbuffer->u.serverinfo.servername, cv_servername.string, - MAXSERVERNAME); + MAXSERVERNAME-1); strncpy(netbuffer->u.serverinfo.mapname, G_BuildMapName(gamemap), 7); M_Memcpy(netbuffer->u.serverinfo.mapmd5, mapmd5, 16); diff --git a/src/dehacked.c b/src/dehacked.c index bda0c38f7..d506ef910 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -1186,9 +1186,9 @@ static void readlevelheader(MYFILE *f, INT32 num) { i = get_mus(word2, true); if (i && i <= 1035) - snprintf(mapheaderinfo[num-1]->musname, 7, "%sM", G_BuildMapName(i)); + snprintf(mapheaderinfo[num-1]->musname, 6, "%sM", G_BuildMapName(i)); else if (i && i <= 1050) - strncpy(mapheaderinfo[num-1]->musname, compat_special_music_slots[i - 1036], 7); + strncpy(mapheaderinfo[num-1]->musname, compat_special_music_slots[i - 1036], 6); else mapheaderinfo[num-1]->musname[0] = 0; // becomes empty string mapheaderinfo[num-1]->musname[6] = 0; @@ -1213,7 +1213,7 @@ static void readlevelheader(MYFILE *f, INT32 num) else if (fastcmp(word, "SKYNUM")) mapheaderinfo[num-1]->skynum = (INT16)i; else if (fastcmp(word, "INTERSCREEN")) - strncpy(mapheaderinfo[num-1]->interscreen, word2, 8); + strncpy(mapheaderinfo[num-1]->interscreen, word2, 7); else if (fastcmp(word, "PRECUTSCENENUM")) mapheaderinfo[num-1]->precutscenenum = (UINT8)i; else if (fastcmp(word, "CUTSCENENUM")) @@ -3101,7 +3101,7 @@ static void readmaincfg(MYFILE *f) // Also save a time attack folder filenamelen = strlen(gamedatafilename)-4; // Strip off the extension - strncpy(timeattackfolder, gamedatafilename, min(filenamelen, sizeof (timeattackfolder))); + strncpy(timeattackfolder, gamedatafilename, min(filenamelen, sizeof (timeattackfolder)-1)); timeattackfolder[min(filenamelen, sizeof (timeattackfolder) - 1)] = '\0'; strcpy(savegamename, timeattackfolder); diff --git a/src/hu_stuff.c b/src/hu_stuff.c index a9a2b7504..13272a748 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -3072,7 +3072,7 @@ void HU_DoCEcho(const char *msg) { I_OutputMsg("%s\n", msg); // print to log - strncpy(cechotext, msg, sizeof(cechotext)); + strncpy(cechotext, msg, sizeof(cechotext)-1); strncat(cechotext, "\\", sizeof(cechotext) - strlen(cechotext) - 1); cechotext[sizeof(cechotext) - 1] = '\0'; cechotimer = cechoduration; diff --git a/src/p_spec.c b/src/p_spec.c index f3be86ee1..9b46d4b3b 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -469,7 +469,7 @@ void P_ParseAnimationDefintion(SINT8 istexture) // Increase the size to make room for the new animation definition maxanims++; animdefs = (animdef_t *)Z_Realloc(animdefs, sizeof(animdef_t)*(maxanims + 1), PU_STATIC, NULL); - strncpy(animdefs[i].startname, animdefsToken, 9); + strncpy(animdefs[i].startname, animdefsToken, 8); } // animdefs[i].startname is now set to animdefsToken either way. diff --git a/src/v_video.c b/src/v_video.c index c3b29e157..5f16bd916 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -196,7 +196,7 @@ static void LoadPalette(const char *lumpname) const char *R_GetPalname(UINT16 num) { static char palname[9]; - char newpal[9] = "PLAYPAL"; + char newpal[9] = "PLAYPAL\0"; if (num > 0 && num <= 10000) snprintf(newpal, 8, "PAL%04u", num-1); From b773b61b8c1ef6bdea4452d3e558dd3fedbb93a8 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 22:31:18 -0400 Subject: [PATCH 5/9] Revert "Try to compile with AppVeyor's GCC 9.1.0" This reverts commit 749c2753e464f9628e68c8a2bca65acbdaa202d5. --- src/Makefile.cfg | 6 ------ src/d_clisrv.c | 2 +- src/dehacked.c | 8 ++++---- src/hu_stuff.c | 2 +- src/p_spec.c | 2 +- src/v_video.c | 2 +- 6 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index d9fee7559..738b05330 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -154,9 +154,6 @@ ifdef GCC43 endif endif WFLAGS+=-Wsign-compare -ifdef GCC91 - WFLAGS+=-Wno-error=address-of-packed-member -endif ifdef GCC45 WFLAGS+=-Wlogical-op endif @@ -241,9 +238,6 @@ ifdef GCC80 WFLAGS+=-Wno-error=format-overflow WFLAGS+=-Wno-error=stringop-truncation WFLAGS+=-Wno-error=stringop-overflow -ifdef GCC91 - WFLAGS+=-Werror=-Wstringop-overflow=2 -endif WFLAGS+=-Wno-format-overflow WFLAGS+=-Wno-stringop-truncation WFLAGS+=-Wno-stringop-overflow diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 6c5b56f81..274fe398a 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1242,7 +1242,7 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime) netbuffer->u.serverinfo.cheatsenabled = CV_CheatsEnabled(); netbuffer->u.serverinfo.isdedicated = (UINT8)dedicated; strncpy(netbuffer->u.serverinfo.servername, cv_servername.string, - MAXSERVERNAME-1); + MAXSERVERNAME); strncpy(netbuffer->u.serverinfo.mapname, G_BuildMapName(gamemap), 7); M_Memcpy(netbuffer->u.serverinfo.mapmd5, mapmd5, 16); diff --git a/src/dehacked.c b/src/dehacked.c index d506ef910..bda0c38f7 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -1186,9 +1186,9 @@ static void readlevelheader(MYFILE *f, INT32 num) { i = get_mus(word2, true); if (i && i <= 1035) - snprintf(mapheaderinfo[num-1]->musname, 6, "%sM", G_BuildMapName(i)); + snprintf(mapheaderinfo[num-1]->musname, 7, "%sM", G_BuildMapName(i)); else if (i && i <= 1050) - strncpy(mapheaderinfo[num-1]->musname, compat_special_music_slots[i - 1036], 6); + strncpy(mapheaderinfo[num-1]->musname, compat_special_music_slots[i - 1036], 7); else mapheaderinfo[num-1]->musname[0] = 0; // becomes empty string mapheaderinfo[num-1]->musname[6] = 0; @@ -1213,7 +1213,7 @@ static void readlevelheader(MYFILE *f, INT32 num) else if (fastcmp(word, "SKYNUM")) mapheaderinfo[num-1]->skynum = (INT16)i; else if (fastcmp(word, "INTERSCREEN")) - strncpy(mapheaderinfo[num-1]->interscreen, word2, 7); + strncpy(mapheaderinfo[num-1]->interscreen, word2, 8); else if (fastcmp(word, "PRECUTSCENENUM")) mapheaderinfo[num-1]->precutscenenum = (UINT8)i; else if (fastcmp(word, "CUTSCENENUM")) @@ -3101,7 +3101,7 @@ static void readmaincfg(MYFILE *f) // Also save a time attack folder filenamelen = strlen(gamedatafilename)-4; // Strip off the extension - strncpy(timeattackfolder, gamedatafilename, min(filenamelen, sizeof (timeattackfolder)-1)); + strncpy(timeattackfolder, gamedatafilename, min(filenamelen, sizeof (timeattackfolder))); timeattackfolder[min(filenamelen, sizeof (timeattackfolder) - 1)] = '\0'; strcpy(savegamename, timeattackfolder); diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 13272a748..a9a2b7504 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -3072,7 +3072,7 @@ void HU_DoCEcho(const char *msg) { I_OutputMsg("%s\n", msg); // print to log - strncpy(cechotext, msg, sizeof(cechotext)-1); + strncpy(cechotext, msg, sizeof(cechotext)); strncat(cechotext, "\\", sizeof(cechotext) - strlen(cechotext) - 1); cechotext[sizeof(cechotext) - 1] = '\0'; cechotimer = cechoduration; diff --git a/src/p_spec.c b/src/p_spec.c index 9b46d4b3b..f3be86ee1 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -469,7 +469,7 @@ void P_ParseAnimationDefintion(SINT8 istexture) // Increase the size to make room for the new animation definition maxanims++; animdefs = (animdef_t *)Z_Realloc(animdefs, sizeof(animdef_t)*(maxanims + 1), PU_STATIC, NULL); - strncpy(animdefs[i].startname, animdefsToken, 8); + strncpy(animdefs[i].startname, animdefsToken, 9); } // animdefs[i].startname is now set to animdefsToken either way. diff --git a/src/v_video.c b/src/v_video.c index 5f16bd916..c3b29e157 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -196,7 +196,7 @@ static void LoadPalette(const char *lumpname) const char *R_GetPalname(UINT16 num) { static char palname[9]; - char newpal[9] = "PLAYPAL\0"; + char newpal[9] = "PLAYPAL"; if (num > 0 && num <= 10000) snprintf(newpal, 8, "PAL%04u", num-1); From eacf89e309d555bda78ed69945a7d995e56a3292 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 22:34:09 -0400 Subject: [PATCH 6/9] Makefile: GCC80 does not exist --- src/Makefile.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 738b05330..6142e9ecf 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -234,7 +234,7 @@ ifdef GCC71 WFLAGS+=-Wno-error=implicit-fallthrough WFLAGS+=-Wno-implicit-fallthrough endif -ifdef GCC80 +ifdef GCC81 WFLAGS+=-Wno-error=format-overflow WFLAGS+=-Wno-error=stringop-truncation WFLAGS+=-Wno-error=stringop-overflow From 268b5a09d9893bf2c93144cc17b421e3e0cc346a Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 22:47:33 -0400 Subject: [PATCH 7/9] Disable address-of-packed-member warning --- src/Makefile.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 6142e9ecf..c69fcd57d 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -154,6 +154,9 @@ ifdef GCC43 endif endif WFLAGS+=-Wsign-compare +ifdef GCC91 + WFLAGS+=-Wno-error=address-of-packed-member +endif ifdef GCC45 WFLAGS+=-Wlogical-op endif From 33c0b825a7cdfd6538f388748dba334191fbb9ee Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 23:02:03 -0400 Subject: [PATCH 8/9] Appveyor: the Mingw64 is 9.1, the Mingw32 is still 7.3 --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 75442145a..3b55aa5b5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -92,8 +92,8 @@ before_build: - ccache -V - ccache -s - if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" ) -- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 GCC91=1 NOOBJDUMP=1 %NOUPX%" -- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1" ) else ( set "MINGW_FLAGS=MINGW=1" ) +- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 GCC73=1 NOOBJDUMP=1 %NOUPX%" +- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC91=1" ) else ( set "MINGW_FLAGS=MINGW=1" ) - set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1" build_script: From 0c2b3002944b28cd823326fb5febc71fad120ca0 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Thu, 8 Aug 2019 23:05:24 -0400 Subject: [PATCH 9/9] Appveyor: other way around, the Mingw32 is at 9.1 --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 3b55aa5b5..b37bd1a65 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -93,7 +93,7 @@ before_build: - ccache -s - if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" ) - set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 GCC73=1 NOOBJDUMP=1 %NOUPX%" -- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC91=1" ) else ( set "MINGW_FLAGS=MINGW=1" ) +- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1" ) else ( set "MINGW_FLAGS=MINGW=1 GCC91=1" ) - set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1" build_script: