mirror of https://github.com/bitcoin/bitcoin
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.4 KiB
31 lines
1.4 KiB
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)
|