From d0540739b198af6cccd935c030b3c00c0e57e7ac Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Thu, 27 Aug 2020 09:13:58 +0200 Subject: [PATCH] binutils: move the base addr above 4gb so we get full ASLR support if enabled --- .../0320-aslr-compat-base-addr.patch | 26 +++++++++++++++++++ mingw-w64-binutils/PKGBUILD | 10 ++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-binutils/0320-aslr-compat-base-addr.patch diff --git a/mingw-w64-binutils/0320-aslr-compat-base-addr.patch b/mingw-w64-binutils/0320-aslr-compat-base-addr.patch new file mode 100644 index 0000000000..5267066066 --- /dev/null +++ b/mingw-w64-binutils/0320-aslr-compat-base-addr.patch @@ -0,0 +1,26 @@ +--- binutils-2.35/ld/emultempl/pep.em.orig 2020-08-27 08:46:36.064000100 +0200 ++++ binutils-2.35/ld/emultempl/pep.em 2020-08-27 09:00:44.598810700 +0200 +@@ -104,19 +104,19 @@ + #undef NT_EXE_IMAGE_BASE + #define NT_EXE_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x100400000LL \ +- : 0x400000LL)) ++ : 0x140000000LL)) + #undef NT_DLL_IMAGE_BASE + #define NT_DLL_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \ +- : 0x10000000LL)) ++ : 0x180000000LL)) + #undef NT_DLL_AUTO_IMAGE_BASE + #define NT_DLL_AUTO_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \ +- : 0x61300000LL)) ++ : 0x1C0000000LL)) + #undef NT_DLL_AUTO_IMAGE_MASK + #define NT_DLL_AUTO_IMAGE_MASK \ + ((bfd_vma) (${move_default_addr_high} ? 0x1ffff0000LL \ +- : 0x0ffc0000LL)) ++ : 0x1ffff0000LL)) + #else + #undef NT_EXE_IMAGE_BASE + #define NT_EXE_IMAGE_BASE \ diff --git a/mingw-w64-binutils/PKGBUILD b/mingw-w64-binutils/PKGBUILD index 2c411937c6..9cd642bd9e 100644 --- a/mingw-w64-binutils/PKGBUILD +++ b/mingw-w64-binutils/PKGBUILD @@ -6,7 +6,7 @@ _realname=binutils pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=2.35 -pkgrel=1 +pkgrel=2 pkgdesc="A set of programs to assemble and manipulate binary and object files (mingw-w64)" arch=('any') url="https://www.gnu.org/software/binutils/" @@ -23,7 +23,8 @@ source=(https://ftp.gnu.org/gnu/binutils/${_realname}-${pkgver}.tar.xz{,.sig} 0010-bfd-Increase-_bfd_coff_max_nscns-to-65279.patch 0020-binutils_2.31_mkdtemp_impl.patch 0110-binutils-mingw-gnu-print.patch - 0120-windres-handle-spaces.patch) + 0120-windres-handle-spaces.patch + 0320-aslr-compat-base-addr.patch) sha256sums=('1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85' 'SKIP' '93296b909e1a4f9d8a4bbe2437aafa17ca565ef6642a9812b0360c05be228c9d' @@ -31,7 +32,8 @@ sha256sums=('1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85' '604e76e0f702ced493ee22aa3c1768b4776b2008a7d70ae0dd35fe5be3522141' '34ba6c001ff7f95ae1da0619c73130112b76d0d2a31bb8a00602eb22f1f84cb8' '76658ef1bb8c5fc3fe6c26e2b5dd9ee0f1d12661988c0c65562b0a3e2d32ae1f' - '86ae90d997e986a54aaebb5251f3a71800b0c5c3f5b57b9094a42995e9f5c478') + '86ae90d997e986a54aaebb5251f3a71800b0c5c3f5b57b9094a42995e9f5c478' + 'd8c2b3e217b9ee2ba888ee73f16137cbc144a50c3aa976351cc13df9542675ad') validpgpkeys=('EAF1C276A747E9ED86210CBAC3126D3B4AE55E93' '3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F') @@ -43,6 +45,8 @@ prepare() { patch -p1 -i "${srcdir}"/0020-binutils_2.31_mkdtemp_impl.patch patch -p1 -i "${srcdir}"/0110-binutils-mingw-gnu-print.patch patch -p1 -i "${srcdir}"/0120-windres-handle-spaces.patch + # https://github.com/msys2/MINGW-packages/issues/6674 + patch -p1 -i "${srcdir}"/0320-aslr-compat-base-addr.patch } build() {