• Tutorial: Script for building OpenSSL for iOS (iPhone/iPad)

    by  • 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."

    Sponsor

    4 Responses to Tutorial: Script for building OpenSSL for iOS (iPhone/iPad)

    1. February 7, 2011 at 01:12

      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!

    2. Vinicius
      September 14, 2011 at 23:55

      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!!

    3. gupta
      October 12, 2011 at 19:25

      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

      • gupta
        October 12, 2011 at 22:16

        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….

    Leave a Reply

    Your email address will not be published. Required fields are marked *