Build Information: (Windows 7 x64, Visual Studio 2010 Pro)
Steps I Performed beyond the instructions posted on the Windows Build Instructions page.
- Compiled QT4.7 64-bit from source, since QT4.7 binaries are only distributed in 32-bit for Windows.
- Compiled LibCurl from source for a similar reason. (The binary mentioned on the instructions page "the devel version without SSL support" doesn't exist anymore).
- Edited Config.kmk:1096 - Hard coded the nm.exe path, since VBOX_NM looks in the 32-bit MinGW directory regardless of target architecture.
- Installed/compiled 32 bit versions of LibSSL and LibCurl in addition to the 64 bit versions, and added (SDK_VBOX_LIBCURL-x86_LIBS, SDK_VBOX_LIBCUR-x86_INCS, SDK_VBOX_OPENSSL-x86_LIBS, SDK_VBOX_OPENSSL-x86_INCS) to AutoConfig.kmk.
- I call KBuild\envwin.cmd --win64 in between running env.bat and kmk.
- I had to manually copy my 32-bit libcurl.dll to /out/win.amd64/release/lib/VBox-libcurl-x64.lib
- I commented out the test case for tstAsmStructsAsm in the VMM testcases. (It was failing)
- I had to manually copy the contents of SignTool and Inf2Cat.exe to tools/win.x86/selfsign/r1
The Issue:
Even if they are in my path, I get errors about missing dlls when I run comregister.cmd. (libcurl.dll, libeay32.dll, libssl32.dll) If I copy these DLLs (64-bit versions of each), into /bin of the build directory, comregister.cmd and loadall.cmd work.
BUT
When I try to run VBoxSDL.exe or VBoxHeadless.exe I get the following error
Code: Select all
VBoxSDL: supR3HardenedScreenImage/Imports: rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\libeay32.dll: Not signed.: \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\libeay32.dll
VBoxSDL: supR3HardenedScreenImage/Imports: rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\ssleay32.dll: Not signed.: \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\ssleay32.dll
VBoxSDL: supR3HardenedScreenImage/Imports: rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\libcurl.dll: Not signed.: \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\libcurl.dll
VBoxSDL: supR3HardenedScreenImage/NtCreateSection: cached rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x10 fAccess=0xf cHits=1 \Device\HarddiskVolume3\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin\libcurl.dll
VBoxSDL: Error -610 in supR3HardenedMainInitRuntime!
VBoxSDL: LoadLibrary "C:\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin/VBoxRT.dll" failed (rc=1790)
VBoxSDL: Tip! It may help to reinstall VirtualBox.
C:\vbox\VirtualBox-5.0.0\out\win.amd64\release\bin>
One interesting note, one of my DLLs (probably LIBSSL) is using the MSVCR120 Dll (Microsoft C Runtime v13.0). I noticed this when comregister.cmd threw up a missing dll error. Everything I compiled is using MSVCR100, since VS 2010 is too old to support the C++ v13 runtime. It worked after I installed the C++ 13.0 redistributable, but I'm wondering if mixmatched C runtimes could be causing this issue.