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