Hi All,
I want to cross compile the Stunnel-5.48 for my Android AOSP (arch64) platform using BoringSSL's 'libssl.so' and 'libcrypto.so' libraries. I have successfully cross compiled the BoringSSL in my AOSP and both .so file was generated for arch64 platform. Am using BoringSSL which was delivered with Android AOSP (Android 7).
Am cross compiling using "build-android.sh" script.
But, while cross compiling the Stunnel-5.48 facing error as below:
------------------------------------------------------------------------------------------------
VERSION=5.48
DST=stunnel-$VERSION-android # to build OpenSSL: # ./Configure threads no-shared no-dso --cross-compile-prefix=arm-linux-androideabi- --prefix=/opt/androideabi/sysroot linux-armv4 # make install LDFLAGS="$LDFLAGS -L/home/jaymin/Desktop/boringssl_lib -fPIE" export LDFLAGS test -f Makefile && make distclean mkdir -p bin/android cd bin/android ../../configure --with-pic --enable-shared --with-sysroot --host=aarch64-linux-android --with-ssl=/home/jaymin/Desktop/boringssl_lib configure: **************************************** initialization checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for aarch64-linux-android-strip... no checking for strip... strip checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking build system type... x86_64-pc-linux-gnu checking host system type... aarch64-unknown-linux-android checking for aarch64-linux-android-gcc... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking whether make sets $(MAKE)... (cached) yes checking whether make supports nested variables... (cached) yes configure: **************************************** thread model checking for a sed that does not truncate output... /bin/sed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking whether gcc is Clang... no checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking whether more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes configure: PTHREAD thread model detected configure: **************************************** compiler/linker flags checking whether C compiler accepts -Wall... yes checking whether C compiler accepts -Wextra... yes checking whether C compiler accepts -Wpedantic... yes checking whether C compiler accepts -Wformat=2... yes checking whether C compiler accepts -Wconversion... yes checking whether C compiler accepts -Wno-long-long... yes checking whether C compiler accepts -Wno-deprecated-declarations... yes checking whether C compiler accepts -fPIE... yes checking whether C compiler accepts -fstack-protector... yes checking whether the linker accepts -fPIE... yes checking whether the linker accepts -pie... yes checking whether the linker accepts -Wl,-z,relro... yes checking whether the linker accepts -Wl,-z,now... yes checking whether the linker accepts -Wl,-z,noexecstack... yes checking whether C compiler accepts -D_FORTIFY_SOURCE=2... yes configure: **************************************** libtool checking how to print strings... printf checking for a sed that does not truncate output... (cached) /bin/sed checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... no checking for aarch64-linux-android-dumpbin... no checking for aarch64-linux-android-link... no checking for dumpbin... no checking for link... link -dump checking the name lister (nm) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to aarch64-unknown-linux-android format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for aarch64-linux-android-objdump... no checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for aarch64-linux-android-dlltool... no checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for aarch64-linux-android-ar... no checking for ar... ar checking for archiver @FILE support... @ checking for aarch64-linux-android-strip... strip checking for aarch64-linux-android-ranlib... no checking for ranlib... ranlib checking command to parse nm output from gcc object... ok checking for sysroot... / checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for aarch64-linux-android-mt... no checking for mt... mt checking if mt is a manifest tool... no checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... Android linker checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: **************************************** types checking for int8_t... yes checking for int16_t... yes checking for int32_t... yes checking for int64_t... yes checking for uint8_t... yes checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for size_t... yes checking for ssize_t... yes checking for uid_t in sys/types.h... yes checking for socklen_t... yes checking for struct sockaddr_un... yes checking for struct addrinfo... yes configure: **************************************** PTY device files checking for "/dev/ptmx"... yes checking for "/dev/ptc"... no configure: **************************************** entropy sources checking for "/dev/urandom"... yes configure: **************************************** default group checking for default group... nogroup checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no configure: **************************************** header files checking for stdint.h... (cached) yes checking for inttypes.h... (cached) yes checking malloc.h usability... yes checking malloc.h presence... yes checking for malloc.h... yes checking ucontext.h usability... yes checking ucontext.h presence... yes checking for ucontext.h... yes checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking poll.h usability... yes checking poll.h presence... yes checking for poll.h... yes checking tcpd.h usability... no checking tcpd.h presence... no checking for tcpd.h... no checking stropts.h usability... yes checking stropts.h presence... yes checking for stropts.h... yes checking grp.h usability... yes checking grp.h presence... yes checking for grp.h... yes checking for unistd.h... (cached) yes checking util.h usability... no checking util.h presence... no checking for util.h... no checking libutil.h usability... no checking libutil.h presence... no checking for libutil.h... no checking pty.h usability... yes checking pty.h presence... yes checking for pty.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking for sys/types.h... (cached) yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/poll.h usability... yes checking sys/poll.h presence... yes checking for sys/poll.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/un.h usability... yes checking sys/un.h presence... yes checking for sys/un.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/filio.h usability... no checking sys/filio.h presence... no checking for sys/filio.h... no checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking sys/uio.h usability... yes checking sys/uio.h presence... yes checking for sys/uio.h... yes checking sys/syscall.h usability... yes checking sys/syscall.h presence... yes checking for sys/syscall.h... yes checking linux/sched.h usability... yes checking linux/sched.h presence... yes checking for linux/sched.h... yes checking for struct msghdr.msg_control... yes checking for linux/netfilter_ipv4.h... yes configure: **************************************** libraries checking for library containing gethostbyname... none required checking for library containing yp_get_default_domain... -lnsl checking for library containing socket... none required checking for library containing openpty... -lutil checking for library containing dlopen... -ldl checking for library containing shl_load... no configure: **************************************** library functions checking for snprintf... yes checking for vsnprintf... yes checking for openpty... yes checking for _getpty... no checking for daemon... yes checking for waitpid... yes checking for wait4... yes checking for setsid... yes checking for setgroups... yes checking for chroot... yes checking for realpath... yes checking for sysconf... yes checking for getrlimit... yes checking for pthread_sigmask... yes checking for localtime_r... yes checking for getcontext... yes checking for __makecontext_v2... no checking for poll... yes checking for gethostbyname2... yes checking for endhostent... yes checking for getnameinfo... yes checking for getaddrinfo... yes checking for broken poll() implementation... no checking for pipe2... yes checking for accept4... yes configure: **************************************** optional features checking whether to enable IPv6 support... yes (default) checking whether to enable FIPS support... autodetecting checking whether to enable systemd socket activation support... autodetecting checking for library containing sd_listen_fds... no configure: systemd library not found checking whether to enable TCP wrappers support... autodetecting checking for hosts_access in -lwrap... no configure: libwrap library not found configure: **************************************** TLS checking for compiler sysroot... / checking for TLS directory... /home/jaymin/Desktop/boringssl_lib checking for FIPS_mode_set... yes configure: FIPS support enabled configure: **************************************** write the results checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating doc/Makefile config.status: creating tools/Makefile config.status: creating tests/Makefile config.status: creating src/config.h config.status: src/config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands configure: **************************************** success make clean Making clean in src make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' rm -f stunnel test -z "stunnel3" || rm -f stunnel3 rm -rf .libs _libs rm -rf ../obj ../bin test -z "libstunnel.la" || rm -f libstunnel.la rm -f ./so_locations rm -f *.o rm -f *.lo make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' Making clean in doc make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/doc' test -z "stunnel.8 stunnel.pl.8 stunnel.html stunnel.pl.html" || rm -f stunnel.8 stunnel.pl.8 stunnel.html stunnel.pl.html rm -rf .libs _libs rm -f *.lo make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/doc' Making clean in tools make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/tools' test -z "stunnel.conf-sample stunnel.init stunnel.service" || rm -f stunnel.conf-sample stunnel.init stunnel.service rm -rf .libs _libs rm -f *.lo make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/tools' Making clean in tests make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/tests' rm -rf .libs _libs rm -f *.lo make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/tests' make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android' rm -rf .libs _libs rm -f *.lo make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android' make Making all in src make[1]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' make all-am make[2]: Entering directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' CC env.lo CCLD libstunnel.la CC stunnel-tls.o CC stunnel-str.o CC stunnel-file.o CC stunnel-client.o CC stunnel-log.o CC stunnel-options.o CC stunnel-protocol.o CC stunnel-network.o CC stunnel-resolver.o CC stunnel-ssl.o CC stunnel-ctx.o CC stunnel-verify.o CC stunnel-sthreads.o CC stunnel-fd.o CC stunnel-dhparam.o CC stunnel-cron.o CC stunnel-stunnel.o CC stunnel-pty.o CC stunnel-libwrap.o CC stunnel-ui_unix.o CCLD stunnel /usr/bin/ld: skipping incompatible /home/jaymin/Desktop/boringssl_lib/libssl.so when searching for -lssl /usr/bin/ld: skipping incompatible /home/jaymin/Desktop/boringssl_lib/libcrypto.so when searching for -lcrypto stunnel-str.o: In function `str_leak_debug': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/str.c:459: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/str.c:470: undefined reference to `CRYPTO_THREAD_unlock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/str.c:501: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/str.c:509: undefined reference to `CRYPTO_THREAD_unlock' stunnel-client.o: In function `session_cache_retrieve': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:568: undefined reference to `CRYPTO_THREAD_read_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:581: undefined reference to `CRYPTO_THREAD_unlock' stunnel-client.o: In function `ssl_start': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:501: undefined reference to `OpenSSL_version_num' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:519: undefined reference to `CRYPTO_THREAD_unlock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:511: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:502: undefined reference to `OpenSSL_version_num' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:503: undefined reference to `OpenSSL_version_num' stunnel-client.o: In function `print_cipher': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:595: undefined reference to `SSL_session_reused' stunnel-client.o: In function `idx_cache_retrieve': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1446: undefined reference to `SSL_session_reused' stunnel-client.o: In function `idx_cache_save': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1432: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1436: undefined reference to `CRYPTO_THREAD_unlock' stunnel-client.o: In function `idx_cache_retrieve': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1447: undefined reference to `CRYPTO_THREAD_read_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1453: undefined reference to `CRYPTO_THREAD_unlock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:1469: undefined reference to `CRYPTO_THREAD_unlock' stunnel-client.o: In function `client_run': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:224: undefined reference to `CRYPTO_atomic_add' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/client.c:323: undefined reference to `CRYPTO_atomic_add' stunnel-log.o: In function `log_close': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:109: undefined reference to `CRYPTO_THREAD_write_lock' stunnel-log.o: In function `s_log': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:165: undefined reference to `CRYPTO_THREAD_read_lock' stunnel-log.o: In function `log_queue': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:194: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:201: undefined reference to `CRYPTO_THREAD_unlock' stunnel-log.o: In function `s_log': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:170: undefined reference to `CRYPTO_THREAD_unlock' stunnel-log.o: In function `log_flush': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:205: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:211: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:219: undefined reference to `CRYPTO_THREAD_unlock' stunnel-log.o: In function `log_close': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:115: undefined reference to `CRYPTO_THREAD_unlock' stunnel-log.o: In function `log_flush': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/log.c:220: undefined reference to `CRYPTO_THREAD_unlock' stunnel-options.o: In function `engine_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:4219: undefined reference to `OPENSSL_init_crypto' stunnel-options.o: In function `service_up_ref': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:614: undefined reference to `CRYPTO_atomic_add' stunnel-options.o: In function `parse_global_option': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:681: undefined reference to `OpenSSL_version_num' stunnel-options.o: In function `tls_methods_set': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:3514: undefined reference to `TLS_client_method' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:3515: undefined reference to `TLS_server_method' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:3506: undefined reference to `TLS_client_method' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:3507: undefined reference to `TLS_server_method' stunnel-options.o: In function `service_up_ref': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:614: undefined reference to `CRYPTO_atomic_add' stunnel-options.o: In function `service_free': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/options.c:624: undefined reference to `CRYPTO_atomic_add' stunnel-ssl.o: In function `ssl_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ssl.c:56: undefined reference to `OPENSSL_init_ssl' stunnel-ssl.o: In function `sk_SSL_COMP_pop': /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:846: undefined reference to `OPENSSL_sk_pop' stunnel-ssl.o: In function `sk_SSL_COMP_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:846: undefined reference to `OPENSSL_sk_num' /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:846: undefined reference to `OPENSSL_sk_num' /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:846: undefined reference to `OPENSSL_sk_num' stunnel-ssl.o: In function `sk_SSL_COMP_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:846: undefined reference to `OPENSSL_sk_value' stunnel-ssl.o: In function `compression_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ssl.c:217: undefined reference to `SSL_COMP_get0_name' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ssl.c:221: undefined reference to `SSL_COMP_get_id' stunnel-ssl.o: In function `ssl_configure': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ssl.c:127: undefined reference to `OPENSSL_init_crypto' stunnel-ssl.o: In function `compression_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ssl.c:201: undefined reference to `COMP_get_type' stunnel-ctx.o: In function `info_callback': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:1231: undefined reference to `SSL_get_state' stunnel-ctx.o: In function `session_cache_save': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:981: undefined reference to `SSL_SESSION_up_ref' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:986: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:999: undefined reference to `CRYPTO_THREAD_unlock' stunnel-ctx.o: In function `sk_X509_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_value' stunnel-ctx.o: In function `sk_X509_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_num' stunnel-ctx.o: In function `session_cache_save': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:999: undefined reference to `CRYPTO_THREAD_unlock' stunnel-ctx.o: In function `context_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:154: undefined reference to `SSL_CTX_set_options' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:157: undefined reference to `SSL_CTX_clear_options' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:161: undefined reference to `SSL_CTX_set_options' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:164: undefined reference to `SSL_CTX_clear_options' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:170: undefined reference to `SSL_CTX_get_options' stunnel-ctx.o: In function `dh_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:328: undefined reference to `SSL_CTX_get_ciphers' stunnel-ctx.o: In function `sk_SSL_CIPHER_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:845: undefined reference to `OPENSSL_sk_num' stunnel-ctx.o: In function `sk_SSL_CIPHER_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/ssl.h:845: undefined reference to `OPENSSL_sk_value' stunnel-ctx.o: In function `dh_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:356: undefined reference to `CRYPTO_THREAD_read_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/ctx.c:358: undefined reference to `CRYPTO_THREAD_unlock' stunnel-verify.o: In function `ocsp_request': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/verify.c:539: undefined reference to `X509_STORE_CTX_get0_chain' stunnel-verify.o: In function `get_current_issuer': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/verify.c:701: undefined reference to `X509_STORE_CTX_get0_chain' stunnel-verify.o: In function `sk_X509_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_num' stunnel-verify.o: In function `sk_X509_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_value' stunnel-verify.o: In function `sk_OPENSSL_STRING_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/safestack.h:151: undefined reference to `OPENSSL_sk_value' stunnel-verify.o: In function `sk_OPENSSL_STRING_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/safestack.h:151: undefined reference to `OPENSSL_sk_num' stunnel-verify.o: In function `cert_check_local': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/verify.c:353: undefined reference to `X509_STORE_CTX_get1_certs' stunnel-verify.o: In function `sk_X509_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_num' stunnel-verify.o: In function `sk_X509_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_value' stunnel-verify.o: In function `sk_X509_pop_free': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_pop_free' /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:97: undefined reference to `OPENSSL_sk_pop_free' stunnel-verify.o: In function `sk_X509_NAME_num': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:75: undefined reference to `OPENSSL_sk_num' stunnel-verify.o: In function `sk_X509_NAME_value': /home/jaymin/Desktop/boringssl_lib/include/openssl/x509.h:75: undefined reference to `OPENSSL_sk_value' stunnel-sthreads.o: In function `locking_init': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/sthreads.c:358: undefined reference to `CRYPTO_THREAD_lock_new' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/sthreads.c:358: undefined reference to `CRYPTO_THREAD_lock_new' stunnel-dhparam.o: In function `get_dh2048': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/dhparam.c:49: undefined reference to `DH_set0_pqg' stunnel-cron.o: In function `cron_dh_param': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/cron.c:193: undefined reference to `CRYPTO_THREAD_write_lock' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/cron.c:196: undefined reference to `CRYPTO_THREAD_unlock' stunnel-stunnel.o: In function `stunnel_info': /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/stunnel.c:887: undefined reference to `OpenSSL_version' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/stunnel.c:889: undefined reference to `OpenSSL_version' /home/jaymin/Downloads/stunnel-5.48/bin/android/src/../../../src/stunnel.c:890: undefined reference to `OpenSSL_version_num' collect2: error: ld returned 1 exit status Makefile:538: recipe for target 'stunnel' failed make[2]: *** [stunnel] Error 1 make[2]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' Makefile:401: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/jaymin/Downloads/stunnel-5.48/bin/android/src' Makefile:447: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
------------------------------------------------------------------------------------------------
As I want to use SSL, did modification as below:
---------------------------------------------------------------------------------------------
#!/bin/sh
set -ev VERSION=5.48 DST=stunnel-$VERSION-android # to build OpenSSL: # ./Configure threads no-shared no-dso --cross-compile-prefix=arm-linux-androideabi- --prefix=/opt/androideabi/sysroot linux-armv4 # make install LDFLAGS="$LDFLAGS -L/home/jaymin/Desktop/boringssl_lib -fPIE" export LDFLAGS test -f Makefile && make distclean mkdir -p bin/android cd bin/android ../../configure --with-pic --enable-shared --with-sysroot --host=aarch64-linux-android --with-ssl=/home/jaymin/Desktop/boringssl_lib make clean make cd ../.. mkdir $DST cp bin/android/src/stunnel $DST # arm-linux-androideabi-strip $DST/stunnel $DST/openssl # cp /opt/androideabi/sysroot/bin/openssl $DST # arm-linux-androideabi-strip $DST/openssl zip -r $DST.zip $DST rm -rf $DST # sha256sum $DST.zip # mv $DST.zip ../dist/
---------------------------------------------------------------------------------------------
How can I cross compile the Stunnel-5.48 using this BoringSSL? Are my BoringSSL's .so files incompatible?
Any suggestions.
Regards, Jaymin