Building OpenSSL-1.1.0f for WinCE (Windows Embedded Compact 7.0)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

 

This is the first time I'm building OpenSSL for any platform (I'm pretty new to this solution).

 

I'm trying to build OpenSSL 1.1.0f library on ARM7 (backwards compatible, SDK version is ARM4) running Windows Embedded Compact 7.0. I'm hoping to implement a client interfacing web service requiring TLS 1.2 with the https connections.

 

I'm following this instructions:

http://documentation.unified-automation.com/uasdkcpp/1.5.2/html/CompileOpenSSLCE.html

 

wcecompat compatibility library is compiled successfully - I'm getting two libraries: wcecompat.lib and wcecompatex.lib.

 

Because with the 1.1.0 release the build process has changed I'm looking at this site as well:

https://stackoverflow.com/questions/39076244/why-there-is-no-ms-do-ms-bat-after-perl-configure-vc-win64a

 

Since I'm not sure where my problem is I will provide the list of steps I'm taking:

 

1. In Cygwin64 Terminal: tar –xvzf openssl-1.1.0f.tar.gz

2. In Visual Studio 2008 Command Prompt I'm changing directory to C:\cygwin64\home\myaccount\openssl-1.1.0f and entering the following:

 

set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE;C:\Program Files\Microsoft SDKs\Windows\v6.0A\include;

set LIB=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib;

set LIBPATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\LIB;

set Path=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCPackages;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin;C:\cygwin64\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;

 

set OSVERSION=WCE700

set PLATFORM=VC-CE

set TARGETCPU=ARMV4I

set WCECOMPAT="C:\cygwin64\home\myaccount\wcecompat-master"

set LIB=C:\Program Files (x86)\Windows CE Tools\SDKs\CA_MM2_CE7\Lib\ARMv4I;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\lib\ARMV4I;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib

set INCLUDE=C:\Program Files (x86)\Windows CE Tools\SDKs\CA_MM2_CE7\Include\Armv4i;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE;C:\Program Files\Microsoft SDKs\Windows\v6.0A\include;

set Path=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;C:\Perl64\site\bin;%Path%

set LIBPATH="C:\Program Files (x86)\Windows CE Tools\SDKs\CA_MM2_CE7\Lib\ARMv4I";C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\lib\ARMV4I;

 

3. Configuring the make file with the following (full path to perl to make sure ActivePerl-5.24.0.2400 is used):

 

c:\Perl64\bin\perl Configure no-idea no-mdc2 no-rc5 no-asm no-ssl3 VC-CE

 

Configuring OpenSSL version 1.1.0f (0x1010006fL)

    no-asan         [default]  OPENSSL_NO_ASAN

    no-asm          [option]   OPENSSL_NO_ASM

    no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG

    no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE

    no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128

    no-egd          [default]  OPENSSL_NO_EGD

    no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL

    no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER

    no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS

    no-idea         [option]   OPENSSL_NO_IDEA (skip dir)

    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)

    no-mdc2         [option]   OPENSSL_NO_MDC2 (skip dir)

    no-msan         [default]  OPENSSL_NO_MSAN

    no-rc5          [option]   OPENSSL_NO_RC5 (skip dir)

    no-sctp         [default]  OPENSSL_NO_SCTP

    no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE

    no-ssl3         [option]   OPENSSL_NO_SSL3

    no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD

    no-ubsan        [default]  OPENSSL_NO_UBSAN

    no-unit-test    [default]  OPENSSL_NO_UNIT_TEST

    no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS

    no-zlib         [default]

    no-zlib-dynamic [default]

Configuring for VC-CE

CC            =cl

CFLAG         =/W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYS_WINCE-DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=700 -DUNDER_CE=700 -DWCE_PLATFORM_VC-CE -DARM -D_ARM_ -DARMV4I -QRarch4T -QRinterwork-return -I$(WCECOMPAT)/include  /MD /O1i

SHARED_CFLAG  =

DEFINES       =DSO_WIN32 NDEBUG OPENSSL_THREADS OPENSSL_NO_STATIC_ENGINE OPENSSL

_PIC

LFLAG         =/nologo /opt:ref /subsystem:windowsce,7.00 /machine:THUMB

PLIB_LFLAG    =

EX_LIBS       =3

APPS_OBJ      =win32_init.o

CPUID_OBJ     =mem_clr.o

UPLINK_OBJ    =

BN_ASM        =bn_asm.o

EC_ASM        =

DES_ENC       =des_enc.o fcrypt_b.o

AES_ENC       =aes_core.o aes_cbc.o

BF_ENC        =bf_enc.o

CAST_ENC      =c_enc.o

RC4_ENC       =rc4_enc.o rc4_skey.o

RC5_ENC       =rc5_enc.o

MD5_OBJ_ASM   =

SHA1_OBJ_ASM  =

RMD160_OBJ_ASM=

CMLL_ENC      =camellia.o cmll_misc.o cmll_cbc.o

MODES_OBJ     =

PADLOCK_OBJ   =

CHACHA_ENC    =chacha_enc.o

POLY1305_OBJ  =

BLAKE2_OBJ    =

PROCESSOR     =

RANLIB        =true

ARFLAGS       =/nologo

PERL          =c:\Perl64\bin\perl.exe

 

THIRTY_TWO_BIT mode

BN_LLONG mode

 

Configured for VC-CE.

 

4. Compiling the library with the following:

 

nmake

 

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

        "c:\Perl64\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "crypto\include\internal\bn_conf.h.in" > crypto\include\internal\bn_conf.h

        "c:\Perl64\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "crypto\include\internal\dso_conf.h.in" > crypto\include\internal\dso_conf.h

        "c:\Perl64\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl"  "-omakefile" "include\openssl\opensslconf.h.in" > include\openssl\opensslconf.h

        "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" depend && "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" _all

 

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

 

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

        cl  /I "." /I "crypto\include" /I "include" -DDSO_WIN32 -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC "-DENGINESDIR=\"C:\\ProgramFiles\\OpenSSL\\lib\\engines-1_1\"" "-DOPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\"" /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYS_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=700 -DUNDER_CE=700 -DWCE_PLATFORM_VC-CE -DARM -D_ARM_ -DARMV4I -QRarch4T -QRinterwork-return -I"C:\cygwin64\home\myaccount\wcecompat-master"/include  /MD /O1i /Zi /Fdossl_static -c /Focrypto\aes\aes_ige.obj "crypto\aes\aes_ige.c" aes_ige.c

C:\cygwin64\home\myaccount\openssl-1.1.0f\e_os.h(485) : error C2220: warning treated as error - no 'object' file generated

C:\cygwin64\home\myaccount\openssl-1.1.0f\e_os.h(485) : warning C4005: 'open' : macro redefinition

        C:\cygwin64\home\myaccount\wcecompat-master\include\io.h(25) : see previous definition of 'open'

C:\cygwin64\home\myaccount\openssl-1.1.0f\e_os.h(486) : warning C4005: 'fdopen' : macro redefinition

        C:\cygwin64\home\myaccount\wcecompat-master\include\io.h(38) : see previous definition of 'fdopen'

C:\cygwin64\home\myaccount\openssl-1.1.0f\e_os.h(487) : warning C4005: 'close' : macro redefinition

        C:\cygwin64\home\myaccount\wcecompat-master\include\io.h(27) : see previous definition of 'close'

C:\cygwin64\home\myaccount\openssl-1.1.0f\e_os.h(491) : warning C4005: 'unlink' : macro redefinition

        C:\cygwin64\home\myaccount\wcecompat-master\include\io.h(32) : see previous definition of 'unlink'

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm\cl.EXE"' : return code '0x2' Stop.

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2' Stop.

 

 

This may be something simple but I use Visual Studio 2008 to build my code and manually setting up the build process is not simple for me. I would appreciate if someone could point me into a right direction. Thank you in advance.

 

I also tried to build openssl-1.0.2l (following the same instructions). I went a little further seeing link errors and one lib (libeay32d.lib) generated but that's not an expected result.

 

Best regards,

Tom

-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux