Tested with 3 different rpt/debug pairs compiled on Windows with the new makefile. GDB reads the symbols then spits out a rather useless "Breakpoint 1 at <eip>" which is pretty useless.
The former yes, the latter does not compile. Though upon closer investigation I may have been misled; since I lacked a proper crash from the pre-makefile exe I fed it an eip from vanilla 2.2.9. But using that same eip generated from 2.2.9 still produces a (most likely inaccurate but at least present) backtrace in latest next.
After additional testing I can confirm it is in fact the new makefile causing this. I abused the crushtacean bug to intentionally crash the debug exes of both c266a270 and 1721b5b0 and got the following results:
Pre-makefile:
Post-makefile:
Despite the actual crash log pointing to the correct line in both circumstances, the post-makefile build does not give any backtrace when fed to the debug exe via gdb.
Posting my findings as I discovered that typing in info sources within the GDB shell seems to give different outputs pre-makefile rewrite and post-makefile write, maybe relates in a way.
Output from build made from the v2.2.9 tag
(gdb) info sourcesSource files for which symbols have been read in:/e/GitRepos/STJr/SRB2/src/p_inter.c,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/stdio.h,/e/GitRepos/STJr/SRB2/src/m_fixed.h,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/corecrt.h,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/minwindef.h,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/combaseapi.h,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/wtypes.h,E:\GitRepos\STJr\SRB2\src/C:/msys64/mingw32/i686-w64-mingw32/include/stdint.h,/e/GitRepos/STJr/SRB2/src/doomtype.h, /e/GitRepos/STJr/SRB2/src/doomdef.h,/e/GitRepos/STJr/SRB2/src/g_state.h, /e/GitRepos/STJr/SRB2/src/d_ticcmd.h,/e/GitRepos/STJr/SRB2/src/i_system.h, /e/GitRepos/STJr/SRB2/src/tables.h,/e/GitRepos/STJr/SRB2/src/d_think.h, /e/GitRepos/STJr/SRB2/src/taglist.h,/e/GitRepos/STJr/SRB2/src/doomdata.h, /e/GitRepos/STJr/SRB2/src/p_mobj.h,/e/GitRepos/STJr/SRB2/src/sounds.h, /e/GitRepos/STJr/SRB2/src/info.h,/e/GitRepos/STJr/SRB2/src/r_defs.h, /e/GitRepos/STJr/SRB2/src/d_player.h,/e/GitRepos/STJr/SRB2/src/command.h, /e/GitRepos/STJr/SRB2/src/i_sound.h,/e/GitRepos/STJr/SRB2/src/s_sound.h, /e/GitRepos/STJr/SRB2/src/am_map.h,/e/GitRepos/STJr/SRB2/src/doomstat.h, /e/GitRepos/STJr/SRB2/src/d_netcmd.h,/e/GitRepos/STJr/SRB2/src/d_clisrv.h, /e/GitRepos/STJr/SRB2/src/g_demo.h,/e/GitRepos/STJr/SRB2/src/m_cheat.h, /e/GitRepos/STJr/SRB2/src/g_game.h,/e/GitRepos/STJr/SRB2/src/p_tick.h, /e/GitRepos/STJr/SRB2/src/m_dllist.h,/e/GitRepos/STJr/SRB2/src/p_polyobj.h, /e/GitRepos/STJr/SRB2/src/p_local.h,/e/GitRepos/STJr/SRB2/src/p_spec.h, /e/GitRepos/STJr/SRB2/src/m_cond.h,/e/GitRepos/STJr/SRB2/libs/libopenmpt/inc/libopenmpt/libopenmpt_config.h
Output from build post makefile rewrite
(gdb) info sourcesSource files for which symbols have been read in:
I don't think -g was ever passed to the linker flags on the old Makefile. Adding it manually didn't change much either, as it would still not give valid backtrace from EIPs