Tutorial: Script for building OpenSSL for iOS (iPhone/iPad)
by Felix Schulze • December 16, 2010 • Certificates, Encryption, iOS, iPad, iPhone, News, Programming, Projects, Software, Tutorials • 4 Comments
Related to my posts http://www.x2on.de/2010/02/01/tutorial-iphone-app-with-compiled-openssl-library/ and http://www.x2on.de/2010/07/13/tutorial-iphone-app-with-compiled-openssl-1-0-0a-library/ i created a buildscript for building OpenSSL for iOS (iPhone/iPad).
You can get it here: https://github.com/x2on/OpenSSL-for-iPhone/blob/master/build-libssl.sh
Source:
#!/bin/sh # Automatic build script for libssl and libcrypto # for iPhoneOS and iPhoneSimulator # # Created by Felix Schulze on 16.12.10. # Copyright 2010 Felix Schulze. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ########################################################################### # Change values here # # # VERSION="1.0.0c" # SDKVERSION="4.2" # # # ########################################################################### # # # Don't change anything under this line! # # # ########################################################################### CURRENTPATH=`pwd` set -e if [ ! -e openssl-${VERSION}.tar.gz ]; then echo "Downloading openssl-${VERSION}.tar.gz" curl -O http://www.openssl.org/source/openssl-${VERSION}.tar.gz else echo "Using openssl-${VERSION}.tar.gz" fi mkdir -p "${CURRENTPATH}/src" tar zxf openssl-${VERSION}.tar.gz -C "${CURRENTPATH}/src" cd "${CURRENTPATH}/src/openssl-${VERSION}" ############ # iPhone Simulator echo "Building openssl for iPhoneSimulator ${SDKVERSION} i386" echo "Please stand by..." export CC="/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386" mkdir -p "${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk" LOG="${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk/build-openssl-${VERSION}.log" ./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk" > "${LOG}" 2>&1 # add -isysroot to CC= sed -ie "s!^CFLAG=!CFLAG=-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDKVERSION}.sdk !" "Makefile" make >> "${LOG}" 2>&1 make install >> "${LOG}" 2>&1 make clean >> "${LOG}" 2>&1 ############# ############# # iPhoneOS armv6 echo "Building openssl for iPhoneOS ${SDKVERSION} armv6" echo "Please stand by..." export CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6" mkdir -p "${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk" LOG="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/build-openssl-${VERSION}.log" ./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk" > "${LOG}" 2>&1 sed -ie "s!^CFLAG=!CFLAG=-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVERSION}.sdk !" "Makefile" # remove sig_atomic for iPhoneOS sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c" make >> "${LOG}" 2>&1 make install >> "${LOG}" 2>&1 make clean >> "${LOG}" 2>&1 ############# ############# # iPhoneOS armv7 echo "Building openssl for iPhoneOS ${SDKVERSION} armv7" echo "Please stand by..." export CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7" mkdir -p "${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk" LOG="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/build-openssl-${VERSION}.log" ./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk" >> "${LOG}" 2>&1 sed -ie "s!^CFLAG=!CFLAG=-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVERSION}.sdk !" "Makefile" # remove sig_atomic for iPhoneOS sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c" make >> "${LOG}" 2>&1 make install >> "${LOG}" 2>&1 make clean >> "${LOG}" 2>&1 ############# echo "Build library..." lipo -create ${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk/lib/libssl.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/lib/libssl.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/lib/libssl.a -output ${CURRENTPATH}/libssl.a lipo -create ${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk/lib/libcrypto.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/lib/libcrypto.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/lib/libcrypto.a -output ${CURRENTPATH}/libcrypto.a mkdir -p ${CURRENTPATH}/include cp -R ${CURRENTPATH}/bin/iPhoneSimulator${SDKVERSION}.sdk/include/openssl ${CURRENTPATH}/include/ echo "Building done."
Many thanks for publishing this guide, I’m new to openssl on the iphone but need to build a working file decryptor using blowfish and this will be really helpful in saving me a lot of time!
Hi!! I got some erros when I tried to run this script
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6 -I. -I.. -I../include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk -DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -O3 -fomit-frame-pointer -Wall -c -o cryptlib.o cryptlib.c
In file included from cryptlib.c:117:
cryptlib.h:62:20: error: stdlib.h: No such file or directory
cryptlib.h:63:20: error: string.h: No such file or directory
In file included from cryptlib.h:65,
from cryptlib.c:117:
../e_os.h:447:30: error: unistd.h: No such file or directory
../e_os.h:452:29: error: sys/types.h: No such file or directory
In file included from cryptlib.h:72,
from cryptlib.c:117:
../include/openssl/crypto.h:125:19: error: stdio.h: No such file or directory
In file included from cryptlib.h:72,
from cryptlib.c:117:
Could u help me solve this?! Thx!!
For me simulator based lib file generated successfully. but while compiling for armv6, got below errors…
Configuring for BSD-generic32
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-shared [default]
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-zlib [default]
no-zlib-dynamic [default]
IsMK1MF=0
CC =/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6
CFLAG =-DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -O3 -fomit-frame-pointer -Wall
EX_LIBS =
CPUID_OBJ =mem_clr.o
BN_ASM =bn_asm.o
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
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/opt/local/bin/perl5
THIRTY_TWO_BIT mode
DES_UNROLL used
DES_INT used
BN_LLONG mode
RC4_INDEX mode
RC4_CHUNK is undefined
e_os2.h => include/openssl/e_os2.h
making links in crypto…
crypto.h => ../include/openssl/crypto.h
opensslv.h => ../include/openssl/opensslv.h
opensslconf.h => ../include/openssl/opensslconf.h
ebcdic.h => ../include/openssl/ebcdic.h
symhacks.h => ../include/openssl/symhacks.h
ossl_typ.h => ../include/openssl/ossl_typ.h
making links in crypto/objects…
objects.h => ../../include/openssl/objects.h
obj_mac.h => ../../include/openssl/obj_mac.h
making links in crypto/md4…
md4.h => ../../include/openssl/md4.h
md4test.c => ../../test/md4test.c
md4.c => ../../apps/md4.c
making links in crypto/md5…
md5.h => ../../include/openssl/md5.h
md5test.c => ../../test/md5test.c
making links in crypto/sha…
sha.h => ../../include/openssl/sha.h
shatest.c => ../../test/shatest.c
sha1test.c => ../../test/sha1test.c
sha256t.c => ../../test/sha256t.c
sha512t.c => ../../test/sha512t.c
making links in crypto/mdc2…
mdc2.h => ../../include/openssl/mdc2.h
mdc2test.c => ../../test/mdc2test.c
making links in crypto/hmac…
hmac.h => ../../include/openssl/hmac.h
hmactest.c => ../../test/hmactest.c
making links in crypto/ripemd…
ripemd.h => ../../include/openssl/ripemd.h
rmdtest.c => ../../test/rmdtest.c
making links in crypto/whrlpool…
whrlpool.h => ../../include/openssl/whrlpool.h
wp_test.c => ../../test/wp_test.c
making links in crypto/des…
des.h => ../../include/openssl/des.h
des_old.h => ../../include/openssl/des_old.h
destest.c => ../../test/destest.c
making links in crypto/aes…
aes.h => ../../include/openssl/aes.h
making links in crypto/rc2…
rc2.h => ../../include/openssl/rc2.h
rc2test.c => ../../test/rc2test.c
making links in crypto/rc4…
rc4.h => ../../include/openssl/rc4.h
rc4test.c => ../../test/rc4test.c
making links in crypto/idea…
idea.h => ../../include/openssl/idea.h
ideatest.c => ../../test/ideatest.c
making links in crypto/bf…
blowfish.h => ../../include/openssl/blowfish.h
bftest.c => ../../test/bftest.c
making links in crypto/cast…
cast.h => ../../include/openssl/cast.h
casttest.c => ../../test/casttest.c
making links in crypto/camellia…
camellia.h => ../../include/openssl/camellia.h
making links in crypto/seed…
seed.h => ../../include/openssl/seed.h
making links in crypto/modes…
modes.h => ../../include/openssl/modes.h
making links in crypto/bn…
bn.h => ../../include/openssl/bn.h
bntest.c => ../../test/bntest.c
exptest.c => ../../test/exptest.c
making links in crypto/ec…
ec.h => ../../include/openssl/ec.h
ectest.c => ../../test/ectest.c
making links in crypto/rsa…
rsa.h => ../../include/openssl/rsa.h
rsa_test.c => ../../test/rsa_test.c
making links in crypto/dsa…
dsa.h => ../../include/openssl/dsa.h
dsatest.c => ../../test/dsatest.c
making links in crypto/ecdsa…
ecdsa.h => ../../include/openssl/ecdsa.h
ecdsatest.c => ../../test/ecdsatest.c
making links in crypto/dh…
dh.h => ../../include/openssl/dh.h
dhtest.c => ../../test/dhtest.c
making links in crypto/ecdh…
ecdh.h => ../../include/openssl/ecdh.h
ecdhtest.c => ../../test/ecdhtest.c
making links in crypto/dso…
dso.h => ../../include/openssl/dso.h
making links in crypto/engine…
engine.h => ../../include/openssl/engine.h
enginetest.c => ../../test/enginetest.c
making links in crypto/buffer…
buffer.h => ../../include/openssl/buffer.h
making links in crypto/bio…
bio.h => ../../include/openssl/bio.h
making links in crypto/stack…
stack.h => ../../include/openssl/stack.h
safestack.h => ../../include/openssl/safestack.h
making links in crypto/lhash…
lhash.h => ../../include/openssl/lhash.h
making links in crypto/rand…
rand.h => ../../include/openssl/rand.h
randtest.c => ../../test/randtest.c
making links in crypto/err…
err.h => ../../include/openssl/err.h
making links in crypto/evp…
evp.h => ../../include/openssl/evp.h
evp_test.c => ../../test/evp_test.c
cp evptests.txt ../../test
making links in crypto/asn1…
asn1.h => ../../include/openssl/asn1.h
asn1_mac.h => ../../include/openssl/asn1_mac.h
asn1t.h => ../../include/openssl/asn1t.h
making links in crypto/pem…
pem.h => ../../include/openssl/pem.h
pem2.h => ../../include/openssl/pem2.h
making links in crypto/x509…
x509.h => ../../include/openssl/x509.h
x509_vfy.h => ../../include/openssl/x509_vfy.h
making links in crypto/x509v3…
x509v3.h => ../../include/openssl/x509v3.h
making links in crypto/conf…
conf.h => ../../include/openssl/conf.h
conf_api.h => ../../include/openssl/conf_api.h
making links in crypto/txt_db…
txt_db.h => ../../include/openssl/txt_db.h
making links in crypto/pkcs7…
pkcs7.h => ../../include/openssl/pkcs7.h
making links in crypto/pkcs12…
pkcs12.h => ../../include/openssl/pkcs12.h
making links in crypto/comp…
comp.h => ../../include/openssl/comp.h
making links in crypto/ocsp…
ocsp.h => ../../include/openssl/ocsp.h
making links in crypto/ui…
ui.h => ../../include/openssl/ui.h
ui_compat.h => ../../include/openssl/ui_compat.h
making links in crypto/krb5…
krb5_asn.h => ../../include/openssl/krb5_asn.h
making links in crypto/cms…
cms.h => ../../include/openssl/cms.h
making links in crypto/pqueue…
pqueue.h => ../../include/openssl/pqueue.h
making links in crypto/ts…
ts.h => ../../include/openssl/ts.h
making links in ssl…
ssl.h => ../include/openssl/ssl.h
ssl2.h => ../include/openssl/ssl2.h
ssl3.h => ../include/openssl/ssl3.h
ssl23.h => ../include/openssl/ssl23.h
tls1.h => ../include/openssl/tls1.h
dtls1.h => ../include/openssl/dtls1.h
kssl.h => ../include/openssl/kssl.h
ssltest.c => ../test/ssltest.c
making links in engines…
making links in engines/ccgost…
make[2]: Nothing to be done for `links’.
making links in apps…
make[1]: Nothing to be done for `links’.
making links in test…
make[1]: Nothing to be done for `links’.
making links in tools…
make[1]: Nothing to be done for `links’.
generating dummy tests (if needed)…
make[1]: Nothing to be done for `generate’.
Configured for BSD-generic32.
making all in crypto…
( echo “#ifndef MK1MF_BUILD”;
echo ‘ /* auto-generated by crypto/Makefile for crypto/cversion.c */’;
echo ‘ #define CFLAGS “/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk -DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -O3 -fomit-frame-pointer -Wall”‘;
echo ‘ #define PLATFORM “BSD-generic32″‘;
echo ” #define DATE “`LC_ALL=C LC_TIME=C date`”";
echo ‘#endif’ ) >buildinf.h
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6 -I. -I.. -I../include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk -DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -O3 -fomit-frame-pointer -Wall -c -o cryptlib.o cryptlib.c
In file included from cryptlib.c:117:
cryptlib.h:62:20: error: stdlib.h: No such file or directory
cryptlib.h:63:20: error: string.h: No such file or directory
In file included from cryptlib.h:65,
from cryptlib.c:117:
../e_os.h:447:30: error: unistd.h: No such file or directory
../e_os.h:452:29: error: sys/types.h: No such file or directory
In file included from cryptlib.h:72,
from cryptlib.c:117:
../include/openssl/crypto.h:125:19: error: stdio.h: No such file or directory
In file included from cryptlib.h:72,
from cryptlib.c:117:
../include/openssl/crypto.h:175: error: expected specifier-qualifier-list before ‘size_t’
../include/openssl/crypto.h:465: warning: parameter names (without types) in function declaration
../include/openssl/crypto.h:465: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/crypto.h:466: warning: parameter names (without types) in function declaration
../include/openssl/crypto.h:467: error: expected ‘)’ before ‘const’
../include/openssl/crypto.h:468: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
../include/openssl/crypto.h:470: error: expected ‘)’ before ‘const’
../include/openssl/crypto.h:471: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
../include/openssl/crypto.h:477: warning: parameter names (without types) in function declaration
../include/openssl/crypto.h:477: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/crypto.h:478: warning: parameter names (without types) in function declaration
../include/openssl/crypto.h:479: error: expected ‘)’ before ‘const’
../include/openssl/crypto.h:480: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
../include/openssl/crypto.h:482: error: expected ‘)’ before ‘const’
../include/openssl/crypto.h:483: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
../include/openssl/crypto.h:500: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/crypto.h:535: error: expected ‘)’ before ‘*’ token
In file included from cryptlib.h:73,
from cryptlib.c:117:
../include/openssl/buffer.h:68:20: error: stddef.h: No such file or directory
In file included from cryptlib.h:73,
from cryptlib.c:117:
../include/openssl/buffer.h:79: error: expected specifier-qualifier-list before ‘size_t’
../include/openssl/buffer.h:86: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/buffer.h:87: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/buffer.h:89: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/buffer.h:90: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/buffer.h:91: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/buffer.h:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BUF_strlcpy’
../include/openssl/buffer.h:95: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BUF_strlcat’
In file included from cryptlib.h:74,
from cryptlib.c:117:
../include/openssl/bio.h:67:20: error: stdarg.h: No such file or directory
In file included from cryptlib.h:74,
from cryptlib.c:117:
../include/openssl/bio.h:510: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BIO_ctrl_pending’
../include/openssl/bio.h:511: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BIO_ctrl_wpending’
../include/openssl/bio.h:529: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BIO_ctrl_get_write_guarantee’
../include/openssl/bio.h:530: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘BIO_ctrl_get_read_request’
../include/openssl/bio.h:570: error: expected ‘)’ before ‘*’ token
../include/openssl/bio.h:632: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:634: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:639: error: expected ‘)’ before ‘*’ token
../include/openssl/bio.h:640: error: expected ‘)’ before ‘*’ token
../include/openssl/bio.h:668: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:669: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:686: error: expected declaration specifiers or ‘…’ before ‘va_list’
../include/openssl/bio.h:688: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:689: error: format string argument not a string type
../include/openssl/bio.h:690: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/bio.h:690: error: expected declaration specifiers or ‘…’ before ‘va_list’
../include/openssl/bio.h:691: error: format string argument not a string type
In file included from ../include/openssl/err.h:127,
from cryptlib.h:75,
from cryptlib.c:117:
../include/openssl/lhash.h:186: error: expected declaration specifiers or ‘…’ before ‘FILE’
../include/openssl/lhash.h:187: error: expected declaration specifiers or ‘…’ before ‘FILE’
../include/openssl/lhash.h:188: error: expected declaration specifiers or ‘…’ before ‘FILE’
In file included from cryptlib.h:75,
from cryptlib.c:117:
../include/openssl/err.h:140:19: error: errno.h: No such file or directory
In file included from cryptlib.h:75,
from cryptlib.c:117:
../include/openssl/err.h:336: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/err.h:340: error: expected declaration specifiers or ‘…’ before ‘size_t’
../include/openssl/err.h:343: error: expected ‘)’ before ‘*’ token
cryptlib.c:177: error: ‘NULL’ undeclared here (not in a function)
cryptlib.c: In function ‘CRYPTO_THREADID_set_numeric’:
cryptlib.c:426: warning: implicit declaration of function ‘memset’
cryptlib.c:426: warning: incompatible implicit declaration of built-in function ‘memset’
cryptlib.c: In function ‘CRYPTO_THREADID_set_pointer’:
cryptlib.c:437: warning: incompatible implicit declaration of built-in function ‘memset’
cryptlib.c: In function ‘CRYPTO_THREADID_current’:
cryptlib.c:503: error: ‘errno’ undeclared (first use in this function)
cryptlib.c:503: error: (Each undeclared identifier is reported only once
cryptlib.c:503: error: for each function it appears in.)
cryptlib.c: In function ‘CRYPTO_THREADID_cmp’:
cryptlib.c:509: warning: implicit declaration of function ‘memcmp’
cryptlib.c: In function ‘CRYPTO_THREADID_cpy’:
cryptlib.c:514: warning: implicit declaration of function ‘memcpy’
cryptlib.c:514: warning: incompatible implicit declaration of built-in function ‘memcpy’
cryptlib.c: In function ‘CRYPTO_thread_id’:
cryptlib.c:548: warning: implicit declaration of function ‘getpid’
cryptlib.c: In function ‘OPENSSL_showfatal’:
cryptlib.c:876: error: ‘va_list’ undeclared (first use in this function)
cryptlib.c:876: error: expected ‘;’ before ‘ap’
cryptlib.c:878: warning: implicit declaration of function ‘va_start’
cryptlib.c:878: error: ‘ap’ undeclared (first use in this function)
cryptlib.c:879: warning: implicit declaration of function ‘vfprintf’
cryptlib.c:879: error: ‘stderr’ undeclared (first use in this function)
cryptlib.c:880: warning: implicit declaration of function ‘va_end’
cryptlib.c: In function ‘OpenSSLDie’:
cryptlib.c:891: warning: implicit declaration of function ‘abort’
cryptlib.c:891: warning: incompatible implicit declaration of built-in function ‘abort’
cryptlib.c: In function ‘OPENSSL_stderr’:
cryptlib.c:899: error: ‘stderr’ undeclared (first use in this function)
make[1]: *** [cryptlib.o] Error 1
make: *** [build_crypto] Error 1
when i compile with new source code openssl-1.0.0e.tar.gz, with SDK version to 4.3. it just compiled successfully.
Use latest code from git….