Hello, I am trying to build OpenSSL for Win CE 6.0 on x86.
Tried the following steps. Building wcecompat library ------------------------------------------- 1. Downloaded wcecompat source from "https://github.com/mauricek/wcecompat/" 2. Open Visual studio 2005 command prompt. 3. Following environment setup has been done. @call "D:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" @set OSVERSION=WCE600 @set PLATFORM=DO_X86_600 @set TARGETCPU=X86 @set GE_HALOSDK=D:\Program Files\Windows CE Tools\wce600\DO_X86_600 @set PATH=%VSINSTALLDIR%\Common7\IDE;%VCINSTALLDIR%\ce\bin\x86_cex86;%VCINSTALLDIR%\bin;%NASMINSTALLDIR%;%PATH% @set INCLUDE=%GE_HALOSDK%\Include\x86;%VCINSTALLDIR%\ce\include;%INCLUDE% @set LIB=%GE_HALOSDK%\Lib\x86;%VCINSTALLDIR%\ce\lib\x86;%LIB% 4. "cd" to wcecompat source directory. 5. Call "perl config.pl" --- Done success 6. Call "nmake" --- Done Success (wcecompat.lib and wcecompatex.lib lib files generated). Building OpenSSL ------------------------------ 1. Downloaded OpenSSL source (openssl-1.0.1e.tar.gz<http://www.openssl.org/source/openssl-1.0.1e.tar.gz>) from http://www.openssl.org/source/ 2. Open Visual studio 2005 command prompt 3. Set the following environment @call "D:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" @set OSVERSION=WCE600 @set PLATFORM=DO_X86_600 @set TARGETCPU=X86 @set WCECOMPAT=C:\wcecompat @set GE_HALOSDK=D:\Program Files\Windows CE Tools\wce600\DO_X86_600 @set PATH=%VSINSTALLDIR%\Common7\IDE;%VCINSTALLDIR%\ce\bin\x86_cex86;%VCINSTALLDIR%\bin;%NASMINSTALLDIR%;%PATH% @set INCLUDE=%GE_HALOSDK%\Include\x86;%VCINSTALLDIR%\ce\include;%INCLUDE% @set LIB=%GE_HALOSDK%\Lib\x86;%VCINSTALLDIR%\ce\lib\x86;%LIB% @set LIBPATH=%GE_HALOSDK%\Lib\x86;%VCINSTALLDIR%\ce\lib\x86;%LIBPATH% 4. "cd" to "openssl-1.0.1e" OpenSSL source directory 5. "perl Configure VC-CE". 6. "ms\do_ms.bat" 7. "nmake -f ms\cedll.mak" 8. The build process stops with following error. cl /Fotmp32dll_X86\bss_dgram.obj -Iinc32 -Itmp32dll_X86 /MC /O1i /W3 /W X /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_ MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=60 0 -DUNDER_CE=600 -DWCE_PLATFORM_DO_X86_600 -Dx86 -D_X86_ -D_i386_ -Di_386_ -IC:\ wcecompat/include -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_ NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE /Zi /Fdtmp32dll_X86/lib -D_WINDLL -D_DLL -D OPENSSL_BUILD_SHLIBCRYPTO -c .\crypto\bio\bss_dgram.c cl : Command line warning D9002 : ignoring unknown option '/MC' bss_dgram.c .\crypto\bio\bss_dgram.c(1852) : error C2220: warning treated as error - no 'obj ect' file generated .\crypto\bio\bss_dgram.c(1852) : warning C4996: '_ftime64': This function or var iable may be unsafe. Consider using _ftime64_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\sys/timeb.h(152) : see declaration of '_ftime64' NMAKE : fatal error U1077: '"D:\Program Files\Microsoft Visual Studio 8\VC\bin\c l.EXE"' : return code '0x2' Stop. 9. Removed the /WX compile option from the cedll.mak and started the nmake again (mentioned in step 7) 10. Got following error message Building OpenSSL cl /Fotmp32dll_X86\b_sock.obj -Iinc32 -Itmp32dll_X86 /MC /O1i /W3 /GF / Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -D L_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=600 -DUND ER_CE=600 -DWCE_PLATFORM_DO_X86_600 -Dx86 -D_X86_ -D_i386_ -Di_386_ -IC:\wcecomp at/include -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAK E -DOPENSSL_NO_STATIC_ENGINE /Zi /Fdtmp32dll_X86/lib -D_WINDLL -D_DLL -DOPENSSL _BUILD_SHLIBCRYPTO -c .\crypto\bio\b_sock.c cl : Command line warning D9002 : ignoring unknown option '/MC' b_sock.c .\crypto\bio\b_sock.c(195) : warning C4013: 'getservbyname' undefined; assuming extern returning int .\crypto\bio\b_sock.c(195) : warning C4047: '=' : 'servent *' differs in levels of indirection from 'int' .\crypto\bio\b_sock.c(629) : error C2079: 'sa_in6' uses undefined struct 'sockad dr_in6' .\crypto\bio\b_sock.c(776) : error C2224: left of '.sin6_addr' must have struct/ union type .\crypto\bio\b_sock.c(776) : error C2224: left of '.sin6_addr' must have struct/ union type .\crypto\bio\b_sock.c(776) : error C2168: 'memset' : too few actual parameters f or intrinsic function .\crypto\bio\b_sock.c(777) : error C2224: left of '.sin6_addr' must have struct/ union type .\crypto\bio\b_sock.c(861) : error C2079: 'sa_in6' uses undefined struct 'sockad dr_in6' NMAKE : fatal error U1077: '"D:\Program Files\Microsoft Visual Studio 8\VC\bin\c l.EXE"' : return code '0x2' Stop. Questions 1. Is there any OpenSSL version available which can be compiled without wcecompat library ?? My understanding is that wcecompat is required only to support legacy API's which OpenSSL calls ??? 2. Is there any OpenSSL supported wcecompat library for Win CE 6.0 ? Please let me know if you need more information to understand the problem. Regards Balaji