From 84c0ae1c6d85c1b4100ee5f48c11dbb2182761dc Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Fri, 2 Oct 2015 13:05:17 -0700 Subject: [PATCH] OpenSSL: Visual Studio 2015 support --- Builds/VisualStudio2015/RippleD.vcxproj | 8 ++++---- SConstruct | 13 +++++++++++-- appveyor.yml | 18 +++++++++--------- src/ripple/crypto/impl/openssl.cpp | 9 +++++++++ 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Builds/VisualStudio2015/RippleD.vcxproj b/Builds/VisualStudio2015/RippleD.vcxproj index 5cb348b7bc..a763ed78f6 100644 --- a/Builds/VisualStudio2015/RippleD.vcxproj +++ b/Builds/VisualStudio2015/RippleD.vcxproj @@ -110,7 +110,7 @@ /bigobj /FS %(AdditionalOptions) - advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies) + advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;legacy_stdio_definitions.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;user32.lib;uuid.lib;VC/static/libeay32MTd.lib;VC/static/ssleay32MTd.lib;winspool.lib;%(AdditionalDependencies) True NoErrorReport Console @@ -147,7 +147,7 @@ /bigobj /FS %(AdditionalOptions) - advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies) + advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;legacy_stdio_definitions.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;user32.lib;uuid.lib;VC/static/libeay32MTd.lib;VC/static/ssleay32MTd.lib;winspool.lib;%(AdditionalDependencies) True NoErrorReport Console @@ -182,7 +182,7 @@ /bigobj /FS %(AdditionalOptions) - advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies) + advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;legacy_stdio_definitions.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;user32.lib;uuid.lib;VC/static/libeay32MT.lib;VC/static/ssleay32MT.lib;winspool.lib;%(AdditionalDependencies) True NoErrorReport Console @@ -217,7 +217,7 @@ /bigobj /FS %(AdditionalOptions) - advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies) + advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;legacy_stdio_definitions.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;user32.lib;uuid.lib;VC/static/libeay32MT.lib;VC/static/ssleay32MT.lib;winspool.lib;%(AdditionalDependencies) True NoErrorReport Console diff --git a/SConstruct b/SConstruct index 31a8856234..76c0abdffb 100644 --- a/SConstruct +++ b/SConstruct @@ -554,9 +554,18 @@ def config_env(toolchain, variant, env): '_CRT_SECURE_NO_WARNINGS', 'WIN32_CONSOLE', ]) + if variant == 'debug': + env.Append(LIBS=[ + 'VC/static/ssleay32MTd.lib', + 'VC/static/libeay32MTd.lib', + ]) + else: + env.Append(LIBS=[ + 'VC/static/ssleay32MT.lib', + 'VC/static/libeay32MT.lib', + ]) env.Append(LIBS=[ - 'ssleay32.lib', - 'libeay32.lib', + 'legacy_stdio_definitions.lib', 'Shlwapi.lib', 'kernel32.lib', 'user32.lib', diff --git a/appveyor.yml b/appveyor.yml index 8e0df4bed4..a9785c95ab 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,22 +6,22 @@ environment: # that it's a small download. We also use appveyor's free cache, avoiding fees # downloading from S3 each time. # TODO: script to create this package. - RIPPLED_DEPS_URL: https://github.com/ripple/Downloads/blob/gh-pages/appveyor/rippled_deps15.zip?raw=true + RIPPLED_DEPS_URL: https://ripple.github.io/Downloads/appveyor/rippled_deps15.01.zip # Other dependencies we just download each time. PIP_URL: https://bootstrap.pypa.io/get-pip.py PYWIN32_URL: https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20219/pywin32-219.win-amd64-py2.7.exe # Scons honours these environment variables, setting the include/lib paths. - BOOST_ROOT: C:/rippled_deps15/boost - OPENSSL_ROOT: C:/rippled_deps15/openssl + BOOST_ROOT: C:/rippled_deps15.01/boost + OPENSSL_ROOT: C:/rippled_deps15.01/openssl os: Visual Studio 2015 # At the end of each successful build we cache this directory. It must be less # than 100MB total compressed. cache: - - "C:\\rippled_deps15" + - "C:\\rippled_deps15.01" # This means we'll download a zip of the branch we want, rather than the full # history. @@ -29,7 +29,7 @@ shallow_clone: true install: # We want easy_install, python and protoc.exe on PATH. - - SET PATH=%PYTHON%;%PYTHON%/Scripts;C:/rippled_deps15;%PATH% + - SET PATH=%PYTHON%;%PYTHON%/Scripts;C:/rippled_deps15.01;%PATH% # `ps` prefix means the command is executed by powershell. - ps: Start-FileDownload $env:PIP_URL @@ -48,17 +48,17 @@ install: # Download dependencies if appveyor didn't restore them from the cache. # Use 7zip to unzip. - ps: | - if (-not(Test-Path 'C:/rippled_deps15')) { + if (-not(Test-Path 'C:/rippled_deps15.01')) { echo "Download from $env:RIPPLED_DEPS_URL" Start-FileDownload "$env:RIPPLED_DEPS_URL" - 7z x rippled_deps15.zip -oC:\ -y > $null + 7z x rippled_deps15.01.zip -oC:\ -y > $null } # Newer DEPS include a versions file. # Dump it so we can verify correct behavior. - ps: | - if (Test-Path 'C:/rippled_deps15/versions.txt') { - cat 'C:/rippled_deps15/versions.txt' + if (Test-Path 'C:/rippled_deps15.01/versions.txt') { + cat 'C:/rippled_deps15.01/versions.txt' } # TODO: This is giving me grief diff --git a/src/ripple/crypto/impl/openssl.cpp b/src/ripple/crypto/impl/openssl.cpp index 7305162ac7..af16b614ec 100644 --- a/src/ripple/crypto/impl/openssl.cpp +++ b/src/ripple/crypto/impl/openssl.cpp @@ -153,3 +153,12 @@ void serialize_ec_point (ec_point const& point, std::uint8_t* ptr) } // openssl } // ripple + +#include +#ifdef _MSC_VER +FILE _iob[] = {*stdin, *stdout, *stderr}; +extern "C" FILE * __cdecl __iob_func(void) +{ + return _iob; +} +#endif