mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
31 lines
1.4 KiB
Diff
31 lines
1.4 KiB
Diff
|
Patch NSIS so that it's installer stubs, produced at NSIS build time,
|
||
|
do not contain .reloc sections, which will exist by default when using
|
||
|
binutils/ld 2.36+.
|
||
|
|
||
|
This ultimately fixes an issue when running the installer with the
|
||
|
"Force randomization for images (Mandatory ASLR)" setting active.
|
||
|
|
||
|
This patch has not yet been sent upstream, because it's not clear if this
|
||
|
is the best fix, for the underlying issue, which seems to be that makensis
|
||
|
doesn't account for .reloc sections when it builds installers.
|
||
|
|
||
|
The existence of a reloc section shouldn't be a problem, and, if anything,
|
||
|
is actually a requirement for working ASLR. All other Windows binaries we
|
||
|
produce contain them, and function correctly when under the same
|
||
|
"Force randomization for images (Mandatory ASLR)" setting.
|
||
|
|
||
|
See:
|
||
|
https://github.com/bitcoin/bitcoin/issues/25726
|
||
|
https://sourceforge.net/p/nsis/bugs/1131/
|
||
|
|
||
|
--- a/SCons/Config/gnu
|
||
|
+++ b/SCons/Config/gnu
|
||
|
@@ -102,6 +102,7 @@ stub_env.Append(LINKFLAGS = ['-mwindows']) # build windows executables
|
||
|
stub_env.Append(LINKFLAGS = ['$NODEFLIBS_FLAG']) # no standard libraries
|
||
|
stub_env.Append(LINKFLAGS = ['$ALIGN_FLAG']) # 512 bytes align
|
||
|
stub_env.Append(LINKFLAGS = ['$MAP_FLAG']) # generate map file
|
||
|
+stub_env.Append(LINKFLAGS = ['-Wl,--disable-reloc-section'])
|
||
|
|
||
|
conf = FlagsConfigure(stub_env)
|
||
|
conf.CheckCompileFlag('-fno-tree-loop-distribute-patterns') # GCC 10: Don't generate msvcrt!memmove calls (bug #1248)
|