Mark, On 6/30/14, 4:23 PM, Mark Thomas wrote: > On 30/06/2014 14:45, Mark Thomas wrote: >> I've got OpenSSL and APR building on x64. Currently stuck on the tc >> native build which is complaining about: >> error LNK2001: unresolved external symbol __security_cookie >> >> I'm fairly sure I've hit this before and just need to remember how I >> fixed it, find the right part of my notes, do the right Google search. >> >> I'm off out now but will be back on this later. > > OK. I think I have a working build for tc-native statically linked to > OpenSSL and APR and dynamically linked to the MS runtime DLLs. > > As far as I can tell Mladen has been building with Visual Studio 6. > > I need to clean up my build process, script a few things etc and then > test the result (at least on 32-bit and AMD 64-bit).
My script seemed a bit cleaner than what you are documenting on the wiki, plus you can get the tools for free (MS VS 12). I was able to build a complete 32-bit statically-linked libtcnative.dll plus the openssl.exe utility using the process I knocked-up from scratch. Note that I have been compiling without using the nasm assembler. I figured I'd try to get things working without it, then add that component later once the build process was working. I have been having trouble building pretty much any 64-bit stuff. I happen to be running a 32-bit Windows 8.1 OS, but that shouldn't really be a problem (should it?). I started with OpenSSL and there are a couple of weird things: 1. Even when configuring for x86-64, the C flags still clearly say WIN32. Maybe that just means "windows" and not necessarily 32-bit. The "configure" Perl script does declare it's configuring for x84-64 so hopefully that's right. 2. OpenSSL's build script calls ml64 which can't be found in the path. It's probably not good that the command fails, and the build script doesn't even check to see if it succeeded. 3. The linker fails at the last step for me: link /nologo /subsystem:console /opt:ref /debug /out:out32\md4test.exe @ C:\Users\IEUser\AppData\Local\Temp\nmC7C.tmp LINK : fatal error LNK1207: incompatible PDB format in 'C:\Users\IEUser\AppData\Local\Temp\build-tcnative\build\openssl-1.0.1h\out3\md4test.pdb'; delete and rebuild NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x4b7' Stop. Installing both MS VS 2013 (v12.0) and the SDK separately seems to have set up a bunch of shortcuts for CLI development. I'm not sure what is what anymore, but switching to the "VS2013 x64 Cross Tools Command Prompt" and building OpenSSL in 64-bit mode seems to have produced a set of binary files (e.g. openssl.exe) that I can't run on my 32-bit version. That indicates to me that I've successfully built OpenSSL in 64-bit mode. I have no idea why it will build under that environment and not in my "other" invocation of cmd.exe. The IA64 build of OpenSSL *did* complete, but I'm not sure how to check its architecture, etc. What is the "depends" tool you guys have been talking about? Thanks, -chris
signature.asc
Description: OpenPGP digital signature