From: İsmail Dönmez Date: Wed, 8 May 2019 11:30:59 +0000 (-0700) Subject: mingw: enable DEP and ASLR X-Git-Tag: v2.22.0-rc1~30^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce6a158561f9;p=thirdparty%2Fgit.git mingw: enable DEP and ASLR Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout Randomization) support. This applies to both 32bit and 64bit builds and makes it substantially harder to exploit security holes in Git by offering a much more unpredictable attack surface. ASLR interferes with GDB's ability to set breakpoints. A similar issue holds true when compiling with -O2 (in which case single-stepping is messed up because GDB cannot map the code back to the original source code properly). Therefore we simply enable ASLR only when an optimization flag is present in the CFLAGS, using it as an indicator that the developer does not want to debug in GDB anyway. Signed-off-by: İsmail Dönmez Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/config.mak.uname b/config.mak.uname index 01b390c043..6f92f4746e 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -575,6 +575,12 @@ else ifneq ($(shell expr "$(uname_R)" : '1\.'),2) # MSys2 prefix = /usr/ + # Enable DEP + BASIC_LDFLAGS += -Wl,--nxcompat + # Enable ASLR (unless debugging) + ifneq (,$(findstring -O,$(filter-out -O0 -Og,$(CFLAGS)))) + BASIC_LDFLAGS += -Wl,--dynamicbase + endif ifeq (MINGW32,$(MSYSTEM)) prefix = /mingw32 HOST_CPU = i686