Merge branch 'id/windows-dep-aslr'
authorJunio C Hamano <gitster@pobox.com>
Sun, 19 May 2019 07:45:27 +0000 (16:45 +0900)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 May 2019 07:45:27 +0000 (16:45 +0900)
Allow DEP and ASLR for Windows build to for security hardening.

* id/windows-dep-aslr:
mingw: enable DEP and ASLR
mingw: do not let ld strip relocations

1  2 
config.mak.uname
diff --combined config.mak.uname
index 19ce2f296a79da9275105748cbb222a7fd50e50d,6f92f4746ecf328eb52019aba067f3d8835f4314..b71688eeb73f10da004f3d16e3de9afd13eb9c7e
@@@ -272,7 -272,6 +272,7 @@@ ifeq ($(uname_S),AIX
        NEEDS_LIBICONV = YesPlease
        BASIC_CFLAGS += -D_LARGE_FILES
        FILENO_IS_A_MACRO = UnfortunatelyYes
 +      NEED_ACCESS_ROOT_HANDLER = UnfortunatelyYes
        ifeq ($(shell expr "$(uname_V)" : '[1234]'),1)
                NO_PTHREADS = YesPlease
        else
@@@ -576,13 -575,21 +576,21 @@@ els
        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
+                       BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
                endif
                ifeq (MINGW64,$(MSYSTEM))
                        prefix = /mingw64
                        HOST_CPU = x86_64
+                       BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
                else
                        COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
                        BASIC_LDFLAGS += -Wl,--large-address-aware