configure: Support for HEASLR on mingw targets
authorAlex Smith <alex.smith@warpsharp.info>
Sat, 26 Sep 2015 06:43:23 +0000 (02:43 -0400)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 28 Sep 2015 08:15:49 +0000 (10:15 +0200)
The appropriate flag for HEASLR (--high-entropy-va) was added in
binutils 2.25.

Also set the image base >4GB so higher entropy gets applied to image
base randomization when used with HEASLR (8 -> 17 bits of
randomization).  Windows does this for compatibility because of "latent
pointer truncation issues".

Signed-off-by: Alex Smith <alex.smith@warpsharp.info>
configure

index bd4f91d..b572d59 100755 (executable)
--- a/configure
+++ b/configure
@@ -4400,6 +4400,10 @@ case $target_os in
             add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup
         elif enabled x86_64; then
             add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup
+            check_ldflags -Wl,--high-entropy-va # binutils 2.25
+            # Set image base >4GB for extra entropy with HEASLR
+            add_ldexeflags -Wl,--image-base,0x140000000
+            append SHFLAGS -Wl,--image-base,0x180000000
         fi
         ;;
     win32|win64)