win32: Disable ASLR for Windows debug builds

GDB is usually able to debug executables with ASLR by temporarily
disabling ASLR when running that executable. This is only supported on
Linux. On Windows, GDB cannot debug ASLR executables.

This removes the dynamicbase linker flag on Windows for debug builds in
order to be able to debug that executable later.

Hardening an executable with ASLR is important for release builds, but
for debug builds being able to debug is much more important.
This commit is contained in:
delthas 2020-04-19 23:59:26 +02:00 committed by Patrick
parent 83daed8706
commit c2cdf0d2a1

View File

@ -134,9 +134,11 @@ test_ldflags = [
'-Wl,-z,relro', '-Wl,-z,relro',
'-Wl,-z,now', '-Wl,-z,now',
# mingw # mingw
'-Wl,--dynamicbase',
'-Wl,--nxcompat', '-Wl,--nxcompat',
] ]
if not (host_machine.system() == 'windows' and get_option('debug'))
test_ldflags += '-Wl,--dynamicbase'
endif
foreach ldflag : test_ldflags foreach ldflag : test_ldflags
if meson.version().version_compare('>= 0.46.0') if meson.version().version_compare('>= 0.46.0')
has_arg = cc.has_link_argument(ldflag) has_arg = cc.has_link_argument(ldflag)