[PATCH 1/2] mingw: do not let ld strip relocations
- From
- İsmail Dönmez via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Apr 29, 2019, 21:56 UTC
- Message-ID
- <e6acdba58659d6176a03037aeb63b0ba84e126ff.1556575015.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.134.git.gitgitgadget@gmail.com>
From: =?UTF-8?q?=C4=B0smail=20D=C3=B6nmez?= <ismail@i10z.com>
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> --- config.mak.uname | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/config.mak.uname b/config.mak.uname index b37fa8424c..e7c7d14e5f 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -573,10 +573,12 @@ else 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
-- gitgitgadget