diff options
author | fanquake <fanquake@gmail.com> | 2022-05-30 15:59:43 +0100 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2022-06-11 14:55:13 +0100 |
commit | fbae8c59a2c3f102828a91ee0dbd6017daa1f4fb (patch) | |
tree | d5dbd8b08555fda9830101b55fbfa70571bb13c9 /src/bitcoin-util.cpp | |
parent | b71d37da2c8c8d2a9cef020731767a6929db54b4 (diff) |
compat: Consolidate mingw-w64 ASLR workaround for upstream libsecp changes
Achieve this by adding a MAIN_FUNCTION macro, consolidating the docs, and
introducing the macro across our distributed binaries.
Also update the docs to explain that anyone using binutils < 2.36 is
effected by this issue. Release builds are not, because they use binutils
2.37. Currently LTS Linux distros, like Ubuntu Focal, ship with 2.34.
https://packages.ubuntu.com/focal/binutils
Diffstat (limited to 'src/bitcoin-util.cpp')
-rw-r--r-- | src/bitcoin-util.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/bitcoin-util.cpp b/src/bitcoin-util.cpp index 1aeac3cef0..1739804edb 100644 --- a/src/bitcoin-util.cpp +++ b/src/bitcoin-util.cpp @@ -11,6 +11,7 @@ #include <chainparams.h> #include <chainparamsbase.h> #include <clientversion.h> +#include <compat.h> #include <core_io.h> #include <streams.h> #include <util/system.h> @@ -142,16 +143,7 @@ static int Grind(const std::vector<std::string>& args, std::string& strPrint) return EXIT_SUCCESS; } -#ifdef WIN32 -// Export main() and ensure working ASLR on Windows. -// Exporting a symbol will prevent the linker from stripping -// the .reloc section from the binary, which is a requirement -// for ASLR. This is a temporary workaround until a fixed -// version of binutils is used for releases. -__declspec(dllexport) int main(int argc, char* argv[]) -#else -int main(int argc, char* argv[]) -#endif +MAIN_FUNCTION { ArgsManager& args = gArgs; SetupEnvironment(); |