build socat for armv7a
macOS-26.5
socat-1.8.1.3
ndk-29
Build for armv7a
% cd /usr/local/src
% curl --remote-name http://www.dest-unreach.org/socat/download/socat-1.8.1.3.tar.gz
% sha256sum socat-1.8.1.3.tar.gz
06602ffd591e98c75b3dc1d66f0f19136cc666b0b2d95caad987d6ab2cb28097 socat-1.8.1.3.tar.gz
% tar zxvf socat-1.8.1.3.tar.gz
% cd socat-1.8.1.3
# configure android ndk
% NDK=~/Library/Android/sdk/ndk/29.0.14206865
% TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
% SYSROOT=$TOOLCHAIN/sysroot
% CC=$TOOLCHAIN/bin/armv7a-linux-androideabi29-clang
% CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi29-clang++
% AR=$TOOLCHAIN/bin/llvm-ar
% RANLIB=$TOOLCHAIN/bin/llvm-ranlib
socat-1.8.1.3 % mkdir out
socat-1.8.1.3 % cd out
out % CC=$CC AR=$AR RANLIB=$RANLIB ../configure --host --disable-openssl --enable-abstract_unixsocket
out % make socat
out % file socat
socat: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, not stripped
More
make_standalone_toolchain: OBSOLETE
% ~/Library/Android/sdk/ndk/29.0.14206865/build/tools/make_standalone_toolchain.py
THIS TOOL IS OBSOLETE. The $NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin directory contains
target-specific scripts that perform the same task. For example,
instead of:
$ python $NDK/build/tools/make_standalone_toolchain.py \
--arch arm64 --api 21 --install-dir toolchain
$ toolchain/bin/clang++ src.cpp
Instead use:
$ $NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang++ src.cpp
See https://developer.android.com/ndk/guides/other_build_systems for more
details.
the following arguments are required: --arch
configure log
configure
% CC=$CC AR=$AR RANLIB=$RANLIB ../configure --host --disable-openssl --enable-abstract_unixsocket
checking which defines needed for makedepend...
checking for --disable-openssl-gcc... /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang
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... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang accepts -g... yes
checking for /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang option to enable C11 features... none needed
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for a BSD-compatible install... /usr/bin/install -c
checking for --disable-openssl-gcc... (cached) /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang
checking whether the compiler supports GNU C... (cached) yes
checking whether /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang accepts -g... (cached) yes
checking for /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang option to enable C11 features... (cached) none needed
checking for --disable-openssl-ranlib... /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib
checking for ar... /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for sys/time.h... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for stdbool.h... yes
checking for inttypes.h... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for fcntl.h... yes
checking for limits.h... yes
checking for strings.h... (cached) yes
checking for sys/param.h... yes
checking for sys/ioctl.h... yes
checking for sys/time.h... (cached) yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for pwd.h... yes
checking for grp.h... yes
checking for stdint.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for poll.h... yes
checking for sys/poll.h... yes
checking for sys/socket.h... yes
checking for sys/uio.h... yes
checking for sys/stat.h... (cached) yes
checking for netdb.h... yes
checking for sys/un.h... yes
checking for pty.h... yes
checking for netinet/in.h... yes
checking for netinet/in_systm.h... yes
checking for netinet/ip.h... yes
checking for netinet/tcp.h... yes
checking for net/if.h... yes
checking for arpa/nameser.h... yes
checking for sys/types.h... (cached) yes
checking for netinet/in.h... (cached) yes
checking for arpa/nameser.h... (cached) yes
checking for netdb.h... (cached) yes
checking for resolv.h... no
checking for termios.h... yes
checking for linux/if_tun.h... yes
checking for net/if_dl.h... no
checking for linux/types.h... yes
checking for linux/errqueue.h... yes
checking for sys/utsname.h... yes
checking for sys/select.h... yes
checking for sys/file.h... yes
checking for util.h... no
checking for bsd/libutil.h... no
checking for libutil.h... no
checking for stropts.h... no
checking for regex.h... yes
checking for linux/fs.h... yes
checking for linux/ext2_fs.h... no
checking for setgrent... yes
checking for getgrent... yes
checking for endgrent... yes
checking for getgrouplist... yes
checking for cfmakeraw... yes
checking for library containing res_9_init... no
checking for hstrerror... yes
checking for gethostent... yes
checking for setsockopt... yes
checking for hstrerror prototype... yes
checking for getprotobynumber_r() variant... /* */
checking whether to include help... yes
checking whether to include transfer statistics... yes
checking whether to include STDIO support... yes
checking whether to include FD-number support... yes
checking whether to include direct file support... yes
checking whether to include direct create support... yes
checking whether to include gopen support... yes
checking whether to include explicit pipe support... yes
checking whether to include explicit stall support... yes
checking whether to include explicit text support... yes
checking whether to include explicit socketpair support... yes
checking whether to include explicit termios support... yes
checking whether to include UNIX socket support... yes
checking whether to include abstract UNIX socket support... yes
checking whether to include IPv4 support... yes
checking whether to include IPv6 support... yes
checking for netinet/ip6.h... yes
checking for netinet6/in6.h... no
checking if __APPLE_USE_RFC_2292 is helpful... no
checking if including netinet/in.h suffices... yes
checking whether to include raw IP support... yes
checking whether to include generic socket support... yes
checking whether to include generic network interface support... yes
checking whether to include TCP support... yes
checking whether to include UDP support... yes
checking whether to include UDP-Lite support... yes
checking for IPPROTO_UDPLITE... yes
checking whether to include SCTP support... yes
checking for IPPROTO_SCTP... yes
checking whether to include DCCP support... yes
checking for netinet/dccp.h... no
checking for linux/dccp.h... yes
checking for IPPROTO_DCCP... yes
checking for SOCK_DCCP... yes
checking whether to include vsock support... yes
checking for linux/vm_sockets.h... yes
checking whether to include Linux namespaces support... YES
checking whether to include listen support... yes
checking whether to include POSIX MQ support... yes
checking for mqueue.h... no
configure: WARNING: Header mqueue.h not found, disabling POSIX MQ
checking whether to include socks4 support... yes
checking whether to include socks4a support... yes
checking whether to include socks5 support... yes
checking whether to include proxy connect support... yes
checking whether to include exec support... yes
checking whether to include system (shell) support... yes
checking whether to include shell invocation support... yes
checking whether to include pty address support... yes
checking whether to include fs attributes support... yes
checking whether to include readline support... yes
checking for usable readline in default location... no
checking for usable readline in location /usr/local... no
checking for usable readline in location /opt/local... no
checking for usable readline in location /sw... no
checking for usable readline in location /opt/freeware... no
checking for usable readline in location /usr/sfw... no
configure: WARNING: no suitable version of readline found; perhaps you need to install a newer version
checking whether to include openssl support... yes
configure: checking for components of OpenSSL
configure: trying with -DOPENSSL_NO_KRB5
configure: checked for openssl/ssl.h... no
configure: WARNING: not all components of OpenSSL found, disabling it
checking for OPENSSL_init_ssl... no
checking for SSL_library_init... no
checking for OPENSSL_INIT_new... no
checking for OPENSSL_INIT_SETTINGS... no
checking whether to include OpenSSL method option... no
checking whether to include undocumented resolver related options... yes
checking whether to include deprecated resolver option... no
checking whether to include openssl fips support... no
checking whether to include tun/tap address support... yes
checking for netinet/if_ether.h... yes
checking for linux/if_packet.h... yes
checking for asm/types.h... yes
checking for linux/rtnetlink.h... yes
checking whether to include system call tracing... yes
checking whether to include file descriptor analyzer... yes
checking whether to include retry support... yes
checking whether to include devtests support... no
checking included message level... debug
checking default IP version... "0"
checking for an ANSI C-conforming const... yes
checking how to run the C preprocessor... /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -E
checking for uid_t in sys/types.h... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_rdev... yes
checking for nanosleep... yes
checking whether /Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang needs -traditional... no
checking for working memcmp... no
checking return type of signal handlers... void
checking for strftime... yes
checking for putenv... yes
checking for select... yes
checking for pselect... yes
checking for poll... yes
checking for socket... yes
checking for strtod... yes
checking for strtol... yes
checking for strtoul... yes
checking for uname... yes
checking for getpgid... yes
checking for getsid... yes
checking for gethostbyname... yes
checking for getaddrinfo... yes
checking for getprotobynumber... yes
checking for setgroups... yes
checking for inet_aton... yes
checking for grantpt... yes
checking for unlockpt... yes
checking for cfsetispeed... yes
checking for cfgetispeed... yes
checking for cfsetospeed... yes
checking for cfgetospeed... yes
checking for posix_memalign prototype... no
checking for strdup prototype... no
checking for strerror prototype... no
checking for strstr prototype... no
checking for getipnodebyname prototype... no
checking for strndup prototype... no
checking for memrchr prototype... no
checking for if_indextoname prototype... no
checking for ptsname prototype... no
checking for long long... yes
checking for sig_atomic_t... no
checking for bool... yes
checking for socklen_t... yes
checking for struct stat64... yes
checking for off64_t... yes
checking for sighandler_t... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for fdset->fds_bits... yes
checking for struct termios . c_ispeed... no
checking for struct termios . c_ospeed... no
checking for sa_family_t... yes
checking for struct sock_extended_err... yes
checking for struct sigaction.sa_sigaction... yes
checking if _SVID3 is helpful... no
checking if _XPG4_2 is helpful... no
checking for struct timespec... yes
checking for struct linger... yes
checking for struct ip... yes
checking for struct ip_mreq... yes
checking for struct ip_mreqn... yes
checking for struct ipv6_mreq... yes
checking for struct ip_mreq_source... yes
checking for struct group_source_req... yes
checking for struct ifreq... yes
checking for struct ifreq.ifr_index... no
checking for struct ifreq.ifr_ifindex... yes
checking for struct sockaddr.sa_len... no
checking for component names of sockaddr_in6... s6_addr
checking for struct iovec... yes
checking for struct msghdr.msg_control... yes
checking for struct msghdr.msg_controllen... yes
checking for struct msghdr.msgflags... yes
checking for struct cmsghdr... yes
checking for struct in_pktinfo... yes
checking for ipi_spec_dst in struct in_pktinfo... yes
checking for struct in6_pktinfo... no
checking for struct tpacket_auxdata... no
checking for tp_vlan_tpid in struct tpacket_auxdata... no
checking for struct ip.ip_hl... yes
checking for sigaction... yes
checking for stat64... yes
checking for fstat64... yes
checking for lstat64... yes
checking for lseek64... yes
checking for truncate64... yes
checking for ftruncate64... yes
checking for strtoll... yes
checking for hstrerror... (cached) yes
checking for inet_ntop... yes
checking for openpty... yes
checking for openpty in -lbsd... no
checking for openpty in -lutil... no
checking for gettimeofday prototype... no
checking for clock_gettime... yes
checking for getresuid... yes
checking for getresgid... yes
checking for flock... yes
checking for setenv... yes
checking for unsetenv... yes
checking for TLS_client_method... no
checking for TLS_client_method in -lcrypt... no
checking for TLS_server_method... no
checking for TLS_server_method in -lcrypt... no
checking for DTLS_client_method... no
checking for DTLS_client_method in -lcrypt... no
checking for DTLS_server_method... no
checking for DTLS_server_method in -lcrypt... no
checking for SSLv2_client_method... no
checking for SSLv2_client_method in -lcrypt... no
checking for SSLv2_server_method... no
checking for SSLv2_server_method in -lcrypt... no
checking for SSLv3_client_method... no
checking for SSLv3_client_method in -lcrypt... no
checking for SSLv3_server_method... no
checking for SSLv3_server_method in -lcrypt... no
checking for SSLv23_client_method... no
checking for SSLv23_client_method in -lcrypt... no
checking for SSLv23_server_method... no
checking for SSLv23_server_method in -lcrypt... no
checking for TLSv1_client_method... no
checking for TLSv1_client_method in -lcrypt... no
checking for TLSv1_server_method... no
checking for TLSv1_server_method in -lcrypt... no
checking for TLSv1_1_client_method... no
checking for TLSv1_1_client_method in -lcrypt... no
checking for TLSv1_1_server_method... no
checking for TLSv1_1_server_method in -lcrypt... no
checking for TLSv1_2_client_method... no
checking for TLSv1_2_client_method in -lcrypt... no
checking for TLSv1_2_server_method... no
checking for TLSv1_2_server_method in -lcrypt... no
checking for DTLSv1_client_method... no
checking for DTLSv1_client_method in -lcrypt... no
checking for DTLSv1_server_method... no
checking for DTLSv1_server_method in -lcrypt... no
checking for DTLSv1_2_client_method... no
checking for DTLSv1_2_client_method in -lcrypt... no
checking for DTLSv1_2_server_method... no
checking for DTLSv1_2_server_method in -lcrypt... no
checking for SSL_CTX_set_default_verify_paths... no
checking for RAND_egd... no
checking for RAND_egd in -lcrypt... no
checking for DH_set0_pqg... no
checking for DH_set0_pqg in -lcrypt... no
checking for ASN1_STRING_get0_data... no
checking for ASN1_STRING_get0_data in -lcrypt... no
checking for RAND_status... no
checking for SSL_CTX_clear_mode... no
checking for SSL_set_tlsext_host_name... no
checking for SSL_CTX_set_tlsext_max_fragment_length... no
checking if SSL_CTX_set_max_send_fragment exists... no
checking for SSL_library_init... (cached) no
checking for ERR_error_string... no
checking for type EC_KEY... no
checking if snprintf conforms to C99... no
checking if printf has Z modifier... no
checking shift offset of CRDLY... -1
checking shift offset of TABDLY... -1
checking shift offset of CSIZE... -1
configure: using compile -Werror method to find basic types
checking for equivalent simple type of uint16_t... 2 /* unsigned short */
checking for equivalent simple type of uint32_t... 4 /* unsigned int */
checking for equivalent simple type of uint64_t... 8 /* unsigned long long */
checking for equivalent simple type of int16_t... 1 /* short */
checking for equivalent simple type of int32_t... 3 /* int */
checking for equivalent simple type of int64_t... 7 /* long long */
checking for equivalent simple type of size_t... 4 /* unsigned int */
checking for equivalent simple type of mode_t... 2 /* unsigned short */
checking for equivalent simple type of pid_t... 3 /* int */
checking for equivalent simple type of uid_t... 4 /* unsigned int */
checking for equivalent simple type of gid_t... 4 /* unsigned int */
checking for equivalent simple type of time_t... 5 /* long */
checking for equivalent simple type of socklen_t... 3 /* int */
checking for equivalent simple type of off_t... 7 /* long long */
checking for equivalent simple type of off64_t... 7 /* long long */
checking for equivalent simple type of dev_t... 4 /* unsigned int */
checking for equivalent simple type of speed_t... 4 /* unsigned int */
checking for equivalent simple type of tcflag_t... 4 /* unsigned int */
checking for basic type of struct stat.st_ino... 8 /* unsigned long long */
checking for basic type of struct stat.st_nlink... 4 /* unsigned int */
checking for basic type of struct stat.st_size... 7 /* long long */
checking for basic type of struct stat.st_blksize... 6 /* unsigned long */
checking for basic type of struct stat.st_blocks... 8 /* unsigned long long */
checking for basic type of struct stat64.st_dev... 8 /* unsigned long long */
checking for basic type of struct stat64.st_ino... 8 /* unsigned long long */
checking for basic type of struct stat64.st_nlink... 4 /* unsigned int */
checking for basic type of struct stat64.st_size... 7 /* long long */
checking for basic type of struct stat64.st_blksize... 6 /* unsigned long */
checking for basic type of struct stat64.st_blocks... 8 /* unsigned long long */
checking for basic type of struct timeval.tv_usec... 5 /* long */
checking for basic type of struct timespec.tv_nsec... 5 /* long */
checking for basic type of struct rlimit.rlim_max... 6 /* unsigned long */
checking for basic type of struct cmsghdr.cmsg_len... 0 /* unknown, taking default */
checking for /dev/ptmx... yes
checking for /proc... no
checking for /proc/*/fd... no
checking for /proc/*/path... no
checking for d_type in struct dirent... yes
checking for _res.retrans... no
checking for _res.retry... no
checking for _res.nsaddr_list... no
checking whether to include libwrap support... yes
checking for components of libwrap... configure: checked for tcpd.h... no
configure: WARNING: not all components of tcp wrappers found, disabling it
checking for hosts_allow_table... no
checking for declaration of environ... yes
checking for var environ... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
error: __res_state #resolver(3)
error: incomplete type 'struct __res_state'
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -O -D_GNU_SOURCE -Wall -Wno-parentheses -DHAVE_CONFIG_H -I. -I. -c -o xioopen.o ../xioopen.c
In file included from ../xioopen.c:10:
In file included from ../xiomodes.h:28:
../xio-ip.h:65:52: warning: declaration of 'struct __res_state' will not be visible outside of this function [-Wvisibility]
65 | extern int xio_res_init(struct single *sfd, struct __res_state *save_res);
| ^
../xio-ip.h:66:35: warning: declaration of 'struct __res_state' will not be visible outside of this function [-Wvisibility]
66 | extern int xio_res_restore(struct __res_state *save_res);
| ^
../xioopen.c:753:23: error: variable has incomplete type 'struct __res_state'
753 | struct __res_state save_res;
| ^
../xioopen.c:753:11: note: forward declaration of 'struct __res_state'
753 | struct __res_state save_res;
| ^
2 warnings and 1 error generated.
make: *** [xioopen.o] Error 1
# Remove resolv.h because it is quite unusable as is
rm $SYSROOT/usr/include/resolv.h
error: ar, ranlib
error: ar
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -O -D_GNU_SOURCE -Wall -Wno-parentheses -DHAVE_CONFIG_H -I. -I. -c -o sslcls.o ../sslcls.c
ar r libxio.a xioinitialize.o xiohelp.o xioparam.o xiodiag.o xioopen.o xioopts.o xiosignal.o xiosigchld.o xioread.o xiowrite.o xiolayer.o xioshutdown.o xioclose.o xioexit.o xio-process.o xio-fd.o xio-fdnum.o xio-stdio.o xio-pipe.o xio-socketpair.o xio-gopen.o xio-creat.o xio-file.o xio-named.o xio-socket.o xio-interface.o xio-listen.o xio-unix.o xio-vsock.o xio-ip.o xio-ip4.o xio-ip6.o xio-ipapp.o xio-tcp.o xio-sctp.o xio-dccp.o xio-rawip.o xio-posixmq.o xio-socks.o xio-socks5.o xio-proxy.o xio-udp.o xio-udplite.o xio-progcall.o xio-exec.o xio-system.o xio-shell.o xio-termios.o xio-readline.o xio-pty.o xio-openssl.o xio-streams.o xio-namespaces.o xio-ascii.o xiolockfile.o xio-tcpwrap.o xio-fs.o xio-tun.o xio-stall.o xio-text.o xio-netlink.o error.o dalan.o procan.o procan-cdefs.o hostan.o fdname.o sysutils.o utils.o nestlex.o vsnprintf_r.o snprinterr.o filan.o sycls.o sslcls.o
ar: creating archive libxio.a
ranlib: warning: archive member 'xioinitialize.o' not a mach-o file
ranlib libxio.a
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -O -D_GNU_SOURCE -Wall -Wno-parentheses -DHAVE_CONFIG_H -I. -o socat socat.o libxio.a
ld.lld: error: undefined symbol: diag_set
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 4 more times
ld.lld: error: undefined symbol: xioinitialize
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Exit
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 20 more times
ld.lld: error: undefined symbol: xiosetopt
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 4 more times
ld.lld: error: undefined symbol: msg
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 60 more times
ld.lld: error: undefined symbol: xioopenhelp
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: diag_set_int
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 10 more times
ld.lld: error: undefined symbol: xioinqopt
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(_socat)
>>> referenced by socat.c
>>> socat.o:(_socat)
>>> referenced 1 more times
ld.lld: error: undefined symbol: Strtod
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Strtoul
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xioinitialize2
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiosetenv
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Sigaction
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Signal
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiolock
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Atexit
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xioparms
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 6 more times
ld.lld: error: undefined symbol: xioopts_ignoregroups
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiohook_newchild
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: engine_result
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang: error: linker comxxx failed with exit code 1 (use -v to see invocation)
make: *** [socat] Error 1
error: ranlib
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -O -D_GNU_SOURCE -Wall -Wno-parentheses -DHAVE_CONFIG_H -I. -I. -c -o sslcls.o ../sslcls.c
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar r libxio.a xioinitialize.o xiohelp.o xioparam.o xiodiag.o xioopen.o xioopts.o xiosignal.o xiosigchld.o xioread.o xiowrite.o xiolayer.o xioshutdown.o xioclose.o xioexit.o xio-process.o xio-fd.o xio-fdnum.o xio-stdio.o xio-pipe.o xio-socketpair.o xio-gopen.o xio-creat.o xio-file.o xio-named.o xio-socket.o xio-interface.o xio-listen.o xio-unix.o xio-vsock.o xio-ip.o xio-ip4.o xio-ip6.o xio-ipapp.o xio-tcp.o xio-sctp.o xio-dccp.o xio-rawip.o xio-posixmq.o xio-socks.o xio-socks5.o xio-proxy.o xio-udp.o xio-udplite.o xio-progcall.o xio-exec.o xio-system.o xio-shell.o xio-termios.o xio-readline.o xio-pty.o xio-openssl.o xio-streams.o xio-namespaces.o xio-ascii.o xiolockfile.o xio-tcpwrap.o xio-fs.o xio-tun.o xio-stall.o xio-text.o xio-netlink.o error.o dalan.o procan.o procan-cdefs.o hostan.o fdname.o sysutils.o utils.o nestlex.o vsnprintf_r.o snprinterr.o filan.o sycls.o sslcls.o
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar: warning: creating libxio.a
ranlib libxio.a
ranlib: warning: archive member '/' not a mach-o file
/Users/xxx/Library/Android/sdk/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi29-clang -O -D_GNU_SOURCE -Wall -Wno-parentheses -DHAVE_CONFIG_H -I. -o socat socat.o libxio.a
ld.lld: error: undefined symbol: diag_set
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 4 more times
ld.lld: error: undefined symbol: xioinitialize
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Exit
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 20 more times
ld.lld: error: undefined symbol: xiosetopt
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 4 more times
ld.lld: error: undefined symbol: msg
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 60 more times
ld.lld: error: undefined symbol: xioopenhelp
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: diag_set_int
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 10 more times
ld.lld: error: undefined symbol: xioinqopt
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(_socat)
>>> referenced by socat.c
>>> socat.o:(_socat)
>>> referenced 1 more times
ld.lld: error: undefined symbol: Strtod
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Strtoul
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xioinitialize2
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiosetenv
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Sigaction
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Signal
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiolock
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: Atexit
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xioparms
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced by socat.c
>>> socat.o:(main)
>>> referenced 6 more times
ld.lld: error: undefined symbol: xioopts_ignoregroups
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: xiohook_newchild
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: undefined symbol: engine_result
>>> referenced by socat.c
>>> socat.o:(main)
ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang: error: linker comxxx failed with exit code 1 (use -v to see invocation)
make: *** [socat] Error 1

浙公网安备 33010602011771号