mingw: do not let ld strip relocations
This is the first step for enabling ASLR (Address Space Layout Randomization) support. We want to enable ASLR for better protection against exploiting security holes in Git: it makes it harder to attack software by making code addresses unpredictable. The problem fixed by this commit is that `ld.exe` seems to be stripping relocations which in turn will break ASLR support. We just make sure it's not stripping the main executable entry. Signed-off-by: İsmail Dönmez <ismail@i10z.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
İsmail Dönmez committed
May 8, 2019 at 04:30 UTC
598b6c3a9270e7bd2379fc6084a6ddf694c0f8ea
1 file changed
+2
config.mak.uname
+2
@@ -578,10 +578,12 @@ else
578
ifeq (MINGW32,$(MSYSTEM))
579
prefix = /mingw32
580
HOST_CPU = i686
581
+ BASIC_LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup
582
endif
583
ifeq (MINGW64,$(MSYSTEM))
584
prefix = /mingw64
585
HOST_CPU = x86_64
586
+ BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
587
else
588
COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
589
BASIC_LDFLAGS += -Wl,--large-address-aware