summary refs log tree commit diff stats
diff options
context:
space:
mode:
authordelthas <delthas@dille.cc>2020-04-19 23:59:26 +0200
committerPatrick <tingping@tingping.se>2020-04-19 16:13:18 -0700
commitc2cdf0d2a1296eaa75d99246628277a8180bb2ce (patch)
treee811014addcdfd7a90e037d1163628af78ec3532
parent83daed87061830a140dcbf425ffa78c0ac0f4d4c (diff)
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.
-rw-r--r--meson.build4
1 files changed, 3 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index 645e685e..9b33574b 100644
--- a/meson.build
+++ b/meson.build
@@ -134,9 +134,11 @@ test_ldflags = [
   '-Wl,-z,relro',
   '-Wl,-z,now',
   # mingw
-  '-Wl,--dynamicbase',
   '-Wl,--nxcompat',
 ]
+if not (host_machine.system() == 'windows' and get_option('debug'))
+ test_ldflags += '-Wl,--dynamicbase'
+endif
 foreach ldflag : test_ldflags
   if meson.version().version_compare('>= 0.46.0')
     has_arg = cc.has_link_argument(ldflag)