Compile OpenSSL for Android

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Compile OpenSSL for Android

Leo Goldim
Hi all,

I'm trying to compile OpenSSL for Android, after looking at Google I found this page:


I followed step by step but when I verified my lib (readelf -h ./libcrypto.a | grep -i 'class\|machine' | head -2) I realized that the lib was created for my machine (x86_64) not Android (arm).

So, I changed the configure command to:

./Configure android --openssldir=/home/ec2-user/android-openssl/android-12

And I got the following error:

make[2]: Entering directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
LD_LIBRARY_PATH=: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSLDIR="/home/ec2-user/android-openssl/android-12" -DENGINESDIR="/usr/local/lib/engines-1.1" -Wall -O3 -pthread -mandroid -fPIC --sysroot= -Wa,--noexecstack -fPIC -DOPENSSL_USE_NODELETE -Wl,-znodelete -shared -Wl,-Bsymbolic -Wl,-soname=libcrypto.so.1.1 -o ./libcrypto.so.1.1 -Wl,--whole-archive,--version-script=crypto.map ./libcrypto.a -Wl,--no-whole-archive -ldl
/usr/bin/ld: cannot find crtbegin_so.o: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [link_shlib.linux-shared] Error 1
make[2]: Leaving directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
make[1]: *** [libcrypto.so] Error 2
make[1]: Leaving directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
make: *** [all] Error 2

Someone already compiled the OpenSSL version 1.1.0c for Android and can help me?

Thanks

--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
Reply | Threaded
Open this post in threaded view
|

Re: Compile OpenSSL for Android

Leo Goldim
Hey all,

I finally compiled the OpenSSL for Android, the problem was with the Setenv-android.sh scritp. After fixed it I can compile using the following command line:

./config shared no-ssl2 no-ssl3 no-comp no-hw no-engine --openssldir=/home/ec2-user/android-openssl/android-12 --prefix=/home/ec2-user/android-openssl/android-12

With OpenSSL 1.1.0c, if I use only --openssldir the make install mess with my system libs. I have to use --prefix together to install in a different path.

But, now I'm trying to compile another program, using the OpenSSL compiled lib, and I'm getting the following message:

checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking for library containing SSL_library_init... no
configure: error: libfko needs ssl

Is it a problem with the compiled OpenSSL lib?

Thanks

On Tue, Dec 20, 2016 at 4:09 PM, Leo Goldim <[hidden email]> wrote:
Hi all,

I'm trying to compile OpenSSL for Android, after looking at Google I found this page:


I followed step by step but when I verified my lib (readelf -h ./libcrypto.a | grep -i 'class\|machine' | head -2) I realized that the lib was created for my machine (x86_64) not Android (arm).

So, I changed the configure command to:

./Configure android --openssldir=/home/ec2-user/android-openssl/android-12

And I got the following error:

make[2]: Entering directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
LD_LIBRARY_PATH=: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSLDIR="/home/ec2-user/android-openssl/android-12" -DENGINESDIR="/usr/local/lib/engines-1.1" -Wall -O3 -pthread -mandroid -fPIC --sysroot= -Wa,--noexecstack -fPIC -DOPENSSL_USE_NODELETE -Wl,-znodelete -shared -Wl,-Bsymbolic -Wl,-soname=libcrypto.so.1.1 -o ./libcrypto.so.1.1 -Wl,--whole-archive,--version-script=crypto.map ./libcrypto.a -Wl,--no-whole-archive -ldl
/usr/bin/ld: cannot find crtbegin_so.o: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [link_shlib.linux-shared] Error 1
make[2]: Leaving directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
make[1]: *** [libcrypto.so] Error 2
make[1]: Leaving directory `/home/ec2-user/android-openssl/openssl-1.1.0c'
make: *** [all] Error 2

Someone already compiled the OpenSSL version 1.1.0c for Android and can help me?

Thanks


--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
Reply | Threaded
Open this post in threaded view
|

Re: Compile OpenSSL for Android

Salz, Rich
> checking for library containing SSL_library_init... no
> configure: error: libfko needs ssl

The application is not prepared to build against 1.1.0  That function was removed, and a #define for backward compatibility is used instead.


--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
Reply | Threaded
Open this post in threaded view
|

Re: Compile OpenSSL for Android

Jeffrey Walton-3
On Wed, Dec 21, 2016 at 6:16 PM, Salz, Rich <[hidden email]> wrote:
>> checking for library containing SSL_library_init... no
>> configure: error: libfko needs ssl
>
> The application is not prepared to build against 1.1.0  That function was removed, and a #define for backward compatibility is used instead.
>

Also see https://wiki.openssl.org/index.php/Compilation_and_Installation#Autoconf
. Its another way to address the "SSL_library_init symbol or
OPENSSL_init_ssl symbol" issue.

The missing 1.1.0 code paths will need to be added. The compiler will
tell you where most of the problems are.

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