Skip to content

Commit f0e9cd9

Browse files
committed
Merge 'aslr' into HEAD
Address Space Layout Randomization (ASLR) allows executables' memory layout to change at random between runs, and therefore offers a quite decent protection against many attacks. We enable ASLR because MSYS2's C compiler offers support for ASLR, and whatever performance impact it has is neglible, according to https://insights.sei.cmu.edu/cert/2014/02/differences-between-aslr-on-windows-and-linux.html This merges the part of #612 that does not break Git ;-) This fixes #608 Signed-off-by: Johannes Schindelin <[email protected]>
2 parents f220fc8 + 47c6e8b commit f0e9cd9

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

config.mak.uname

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,13 +576,21 @@ else
576576
ifneq ($(shell expr "$(uname_R)" : '1\.'),2)
577577
# MSys2
578578
prefix = /usr/
579+
# Enable DEP
580+
BASIC_LDFLAGS += -Wl,--nxcompat
581+
# Enable ASLR (unless debugging)
582+
ifneq (,$(findstring -O,$(CFLAGS)))
583+
BASIC_LDFLAGS += -Wl,--dynamicbase
584+
endif
579585
ifeq (MINGW32,$(MSYSTEM))
580586
prefix = /mingw32
581587
HOST_CPU = i686
588+
BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
582589
endif
583590
ifeq (MINGW64,$(MSYSTEM))
584591
prefix = /mingw64
585592
HOST_CPU = x86_64
593+
BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
586594
else
587595
COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
588596
BASIC_LDFLAGS += -Wl,--large-address-aware

0 commit comments

Comments
 (0)