I am trying to compile for android with ndk and I have a trouble understanding how to go about cross-compiling it.

Jakub Strzelecki jakubby at protonmail.com
Thu Jul 1 00:32:49 UTC 2021


I have managed to compile the binary succesfully! I will unregister from the mailings list.

Sent with [ProtonMail](https://protonmail.com/) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Thursday, July 1st, 2021 at 12:19 AM, Jakub Strzelecki <jakubby at protonmail.com> wrote:

> Below is how I go about the compilation, it is a 3 stage process;
> I use git to keep track of those simple build scripts;
> source set_shell && ./generate_answers.sh && ./build_libtalloc.sh
> Here's how it looks like:#####################################################
> $ cat set_shell.sh
> #!/usr/bin/env bash
> export PROJECT_TARGET="$(basename $(pwd))"
> export PROJECT_ROOT=$(dirname $(pwd))
>
> if [[ "$PROJECT_TARGET" = "arm" ]]; then
> export ANDROID_TOOLCHAIN="-androideabi"
> else
> export ANDROID_TOOLCHAIN="-android"
> fi
> export ANDROID_PREFIX="$ANDROID_TOOLCHAIN"
>
> export PROJECT_ROOT=$(pwd)
> export DEVKIT_ROOT="$PROJECT_ROOT/NDK"
> export DEVKIT_TOOLCHAIN="$DEVKIT_ROOT/$PROJECT_TARGET-linux$ANDROID_TOOLCHAIN/bin"
> export DEVKIT_SYSROOT="$DEVKIT_ROOT/sysroot"
>
> export PATH="$DEVKIT_ROOT/bin:$PATH"
>
> export _PREFIX="build_android-$PROJECT_TARGET"
> export _PREFIX_UNKNOWN="$PROJECT_TARGET-unknown-linux$ANDROID_PREFIX"
> export _HOST_TARGET="$PROJECT_TARGET-linux$ANDROID_PREFIX"
>
> export CROSS_COMPILE="$DEVKIT_TOOLCHAIN/$PROJECT_TARGET-linux$ANDROID_PREFIX-"
> export CROSS_COMPILE_="$DEVKIT_TOOLCHAIN/$PROJECT_TARGET-linux$ANDROID_PREFIX"
>
> #TALLOC
> export TALLOC_DIR="samba.org/ftp/talloc"
> export TALLOC_VER="$(ls $TALLOC_DIR)"
> export TALLOC_DIR="$TALLOC_DIR/$TALLOC_VER"
> unset TALLOC_VER
> export TALLOC_PREFIX="$PROJECT_TARGET"
> export TALLOC_LIB="$TALLOC_PREFIX/lib"
> export TALLOC_INCLUDE="$TALLOC_PREFIX/include"
>
> #PROOT
> export PROOT_DIR="proot-me/proot"
> export PROOT_VER="$(ls $PROOT_DIR)"
> export PROOT_DIR="$PROOT_DIR/$PROOT_VER/src"
> unset PROOT_VER
> export PROOT_PREFIX="$PROJECT_TARGET"
> export PROOT_CFLAGS="-I$TALLOC_INCLUDE"
> export PROOT_CPPFLAGS="-I$TALLOC_INCLUDE"
> export PROOT_LDFLAGS="-L$TALLOC_LIB"
> $ cat generate_answers.sh
> #!/usr/bin/env bash
> cat <<EOF >answers_$PROJECT_TARGET.txt
> Checking for 'gcc' (C compiler) : $CROSS_COMPILE_-gcc
> Checking for program 'gdb' : $CROSS_COMPILE_-gdb
> Checking uname sysname type: "Linux"
> Checking uname machine type: "$PROJECT_TARGET"
> Checking uname release type: "dontcare"
> Checking uname version type: "dontcare"
> Checking simple C program: OK
> building library support: OK
> Checking for large file support: OK
> Checking for -D_FILE_OFFSET_BITS=64: $FILE_OFFSET_BITS
> Checking for WORDS_BIGENDIAN: OK
> Checking for C99 vsnprintf: OK
> Checking for HAVE_SECURE_MKSTEMP: OK
> rpath library support: OK
> -Wl,--version-script support: FAIL
> Checking correct behavior of strtoll: OK
> Checking correct behavior of strptime: OK
> Checking for HAVE_IFACE_GETIFADDRS: OK
> Checking for HAVE_IFACE_IFCONF: OK
> Checking for HAVE_IFACE_IFREQ: OK
> Checking getconf LFS_CFLAGS: OK
> Checking for large file support without additional flags: OK
> Checking for working strptime: OK
> Checking for HAVE_SHARED_MMAP: OK
> Checking for HAVE_MREMAP: OK
> Checking for HAVE_INCOHERENT_MMAP: OK
> Checking getconf large file support flags work: OK
> EOF$ cat build_libtalloc.sh
> #!/usr/bin/env bash
> cd $TALLOC_DIR
> bash configure \
> --prefix=$TALLOC_PREFIX \
> --cross-compile \
> --disable-rpath \
> --disable-python \
> --cross-answers=$PROJECT_ROOT/answers_$PROJECT_TARGET.txt
> make -j6
> PREFIX=$TALLOC_PREFIX make install PREFIX=$TALLOC_PREFIX$ cat answers_aarch64.txt
> Checking for 'gcc' (C compiler) : /home/kubast2/Desktop/proot/aarch64/NDK/aarch64-linux-android/bin/aarch64-linux-a
> ndroid-gcc
> Checking for program 'gdb' : /home/kubast2/Desktop/proot/aarch64/NDK/aarch64-linux-android/bin/aarch64-linux-androi
> d-gdb
> Checking uname sysname type: "Linux"
> Checking uname machine type: "aarch64"
> Checking uname release type: "dontcare"
> Checking uname version type: "dontcare"
> Checking simple C program: OK
> building library support: OK
> Checking for large file support: OK
> Checking for -D_FILE_OFFSET_BITS=64:
> Checking for WORDS_BIGENDIAN: OK
> Checking for C99 vsnprintf: OK
> Checking for HAVE_SECURE_MKSTEMP: OK
> rpath library support: OK
> -Wl,--version-script support: FAIL
> Checking correct behavior of strtoll: OK
> Checking correct behavior of strptime: OK
> Checking for HAVE_IFACE_GETIFADDRS: OK
> Checking for HAVE_IFACE_IFCONF: OK
> Checking for HAVE_IFACE_IFREQ: OK
> Checking getconf LFS_CFLAGS: OK
> Checking for large file support without additional flags: OK
> Checking for working strptime: OK
> Checking for HAVE_SHARED_MMAP: OK
> Checking for HAVE_MREMAP: OK
> Checking for HAVE_INCOHERENT_MMAP: OK
> Checking getconf large file support flags work: OK
> #####################################################
>
> Below is what ./build_project.sh(which just makes does the equivalent of "source set_shell; bash ./generate_answers.sh; bash ./build_libtalloc.sh") outputs:#####################################################
> $ ./build_project.sh
> Setting top to : /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2
> Setting out to : /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/bin
> Checking for 'gcc' (C compiler) : /usr/bin/gcc
> Checking for program 'git' : /usr/bin/git
> Checking for c flags '-MMD' : yes
> Checking for program 'gdb' : /usr/bin/gdb
> Checking for header sys/utsname.h : yes
> Checking uname sysname type : Linux
> Checking uname machine type : aarch64
> Checking uname release type : dontcare
> Checking uname version type : dontcare
> Checking for header stdio.h : yes
> Checking simple C program : ok
> Checking compiler accepts ['-Werror'] : yes
> Checking linker accepts ['-Wl,-rpath,.'] : yes
> Checking for rpath library support : yes
> Checking for -Wl,--version-script support : not found
> Checking compiler accepts ['-fvisibility=hidden'] : yes
> Checking for HAVE_VISIBILITY_ATTR : ok
> Checking for library constructor support : ok
> Checking for library destructor support : ok
> Checking for __attribute__ : ok
> Checking compiler accepts ['-fPIC'] : yes
> Checking for inline : inline
> Checking for program 'pkg-config' : /usr/bin/pkg-config
> Checking for pkg-config version >= '0.0.0' : yes
> Checking compiler accepts ['-D__STDC_WANT_LIB_EXT1__=1'] : yes
> Checking compiler accepts [''] : yes
> Checking for header sys/types.h : yes
> Checking for header sys/stat.h : yes
> Checking for header stdlib.h : yes
> Checking for header stddef.h : yes
> Checking for header memory.h : yes
> Checking for header string.h : yes
> Checking for header strings.h : yes
> Checking for header inttypes.h : yes
> Checking for header stdint.h : yes
> Checking for header unistd.h : yes
> Checking for header minix/config.h : no
> Checking for header ctype.h : yes
> Checking for header standards.h : no
> Checking for header stdbool.h : yes
> Checking for header stdarg.h : yes
> Checking for header vararg.h : no
> Checking for header limits.h : yes
> Checking for header assert.h : yes
> Checking getconf LFS_CFLAGS : not found
> Checking getconf large file support flags work : ok
> Checking for large file support without additional flags : ok
> Checking for header sys/time.h : yes
> Checking for header time.h : yes
> Checking for header endian.h : yes
> Checking for header sys/endian.h : no
> Checking for HAVE_LITTLE_ENDIAN : ok
> Checking for HAVE_BIG_ENDIAN : not found
> Checking for header signal.h : yes
> Checking if signal handlers return int : not found
> Checking for variable __FUNCTION__ : ok
> Checking for va_copy : ok
> Checking for HAVE__VA_ARGS__MACRO : ok
> Checking for header linux/types.h : yes
> Checking for header crypt.h : yes
> Checking for header locale.h : yes
> Checking for header acl/libacl.h : yes
> Checking for header compat.h : no
> Checking for header attr/xattr.h : no
> Checking for header dustat.h : no
> Checking for header fcntl.h : yes
> Checking for header fnmatch.h : yes
> Checking for header glob.h : yes
> Checking for header history.h : no
> Checking for header krb5.h : yes
> Checking for header langinfo.h : yes
> Checking for header ndir.h : no
> Checking for header pwd.h : yes
> Checking for header shadow.h : yes
> Checking for header sys/acl.h : yes
> Checking for header sys/attributes.h : no
> Checking for header attr/attributes.h : yes
> Checking for header sys/capability.h : yes
> Checking for header sys/dir.h : yes
> Checking for header sys/epoll.h : yes
> Checking for header port.h : no
> Checking for header sys/fcntl.h : yes
> Checking for header sys/filio.h : no
> Checking for header sys/filsys.h : no
> Checking for header sys/fs/s5param.h : no
> Checking for header sys/id.h : no
> Checking for header sys/ioctl.h : yes
> Checking for header sys/ipc.h : yes
> Checking for header sys/mman.h : yes
> Checking for header sys/mode.h : no
> Checking for header sys/ndir.h : no
> Checking for header sys/priv.h : no
> Checking for header sys/resource.h : yes
> Checking for header sys/security.h : no
> Checking for header sys/shm.h : yes
> Checking for header sys/statfs.h : yes
> Checking for header sys/statvfs.h : yes
> Checking for header sys/termio.h : no
> Checking for header sys/vfs.h : yes
> Checking for header sys/xattr.h : yes
> Checking for header termio.h : yes
> Checking for header termios.h : yes
> Checking for header sys/file.h : yes
> Checking for header sys/ucontext.h : yes
> Checking for header sys/wait.h : yes
> Checking for declaration of malloc : ok
> Checking for header grp.h : yes
> Checking for header sys/select.h : yes
> Checking for header setjmp.h : yes
> Checking for header utime.h : yes
> Checking for header sys/syslog.h : yes
> Checking for header syslog.h : yes
> Checking for header sys/mount.h : yes
> Checking for header mntent.h : yes
> Checking for header stropts.h : no
> Checking for header unix.h : no
> Checking for header sys/param.h : yes
> Checking for header sys/socket.h : yes
> Checking for header netinet/in.h : yes
> Checking for header netdb.h : yes
> Checking for header arpa/inet.h : yes
> Checking for header netinet/in_systm.h : yes
> Checking for header netinet/ip.h : yes
> Checking for header netinet/tcp.h : yes
> Checking for header netinet/in_ip.h : no
> Checking for header sys/sockio.h : no
> Checking for header sys/un.h : yes
> Checking for header sys/uio.h : yes
> Checking for header ifaddrs.h : yes
> Checking for header direct.h : no
> Checking for header dirent.h : yes
> Checking for header windows.h : no
> Checking for header winsock2.h : no
> Checking for header ws2tcpip.h : no
> Checking for header errno.h : yes
> Checking for header getopt.h : yes
> Checking for header iconv.h : yes
> Checking for header nss.h : yes
> Checking for header sasl/sasl.h : yes
> Checking for inotify_init : ok
> Checking for header security/pam_appl.h : yes
> Checking for header zlib.h : yes
> Checking for header asm/unistd.h : yes
> Checking for header sys/unistd.h : yes
> Checking for header alloca.h : yes
> Checking for header float.h : yes
> Checking for header rpc/rpc.h : no
> Checking for header rpc/nettype.h : no
> Checking for tirpc rpc headers in default system path : not found
> Checking for libtirpc headers : yes
> Checking for header rpc/rpc.h : yes
> Checking for header rpc/nettype.h : yes
> Checking for library nsl : yes
> Checking for header rpcsvc/yp_prot.h : yes
> Checking for header rpcsvc/nis.h : yes
> Checking for header rpcsvc/ypclnt.h : yes
> Checking for header sys/sysctl.h : not found
> Checking for header sys/fileio.h : no
> Checking for header sys/filesys.h : no
> Checking for header sys/dustat.h : no
> Checking for header sys/sysmacros.h : yes
> Checking for header xfs/libxfs.h : no
> Checking for header netgroup.h : no
> Checking for header valgrind.h : no
> Checking for header valgrind/valgrind.h : yes
> Checking for header valgrind/memcheck.h : yes
> Checking for header valgrind/helgrind.h : yes
> Checking for header nss_common.h : no
> Checking for header nsswitch.h : no
> Checking for header ns_api.h : no
> Checking for header sys/extattr.h : no
> Checking for header sys/ea.h : no
> Checking for header sys/proplist.h : no
> Checking for header sys/cdefs.h : yes
> Checking for header utmp.h : yes
> Checking for header utmpx.h : yes
> Checking for header lastlog.h : yes
> Checking for header syscall.h : yes
> Checking for header sys/syscall.h : yes
> Checking for header sys/atomic.h : no
> Checking for header stdatomic.h : yes
> Checking for header libgen.h : yes
> Checking compiler accepts -Wno-format-truncation : yes
> Checking compiler accepts -Wno-unused-function : yes
> Checking compiler accepts -Wno-strict-overflow : yes
> Checking for header sys/prctl.h : yes
> Checking for prctl syscall : ok
> Checking for O_DIRECT flag to open(2) : ok
> Checking for long long : ok
> Checking for intptr_t : ok
> Checking for uintptr_t : ok
> Checking for ptrdiff_t : ok
> Checking for comparison_fn_t : ok
> Checking for _Bool : ok
> Checking for bool : ok
> Checking for int8_t : ok
> Checking for uint8_t : ok
> Checking for int16_t : ok
> Checking for uint16_t : ok
> Checking for int32_t : ok
> Checking for uint32_t : ok
> Checking for int64_t : ok
> Checking for uint64_t : ok
> Checking for size_t : ok
> Checking for ssize_t : ok
> Checking for ino_t : ok
> Checking for loff_t : ok
> Checking for offset_t : not found
> Checking for volatile int : ok
> Checking for uint_t : not found
> Checking for blksize_t : ok
> Checking for blkcnt_t : ok
> Checking if size of bool == 1 : ok
> Checking if size of char == 1 : ok
> Checking if size of int == 1 : not found
> Checking if size of int == 2 : not found
> Checking if size of int == 4 : ok
> Checking if size of long long == 1 : not found
> Checking if size of long long == 2 : not found
> Checking if size of long long == 4 : not found
> Checking if size of long long == 8 : ok
> Checking if size of long == 1 : not found
> Checking if size of long == 2 : not found
> Checking if size of long == 4 : not found
> Checking if size of long == 8 : ok
> Checking if size of short == 1 : not found
> Checking if size of short == 2 : ok
> Checking if size of size_t == 1 : not found
> Checking if size of size_t == 2 : not found
> Checking if size of size_t == 4 : not found
> Checking if size of size_t == 8 : ok
> Checking if size of ssize_t == 1 : not found
> Checking if size of ssize_t == 2 : not found
> Checking if size of ssize_t == 4 : not found
> Checking if size of ssize_t == 8 : ok
> Checking if size of int8_t == 1 : ok
> Checking if size of uint8_t == 1 : ok
> Checking if size of int16_t == 1 : not found
> Checking if size of int16_t == 2 : ok
> Checking if size of uint16_t == 1 : not found
> Checking if size of uint16_t == 2 : ok
> Checking if size of int32_t == 1 : not found
> Checking if size of int32_t == 2 : not found
> Checking if size of int32_t == 4 : ok
> Checking if size of uint32_t == 1 : not found
> Checking if size of uint32_t == 2 : not found
> Checking if size of uint32_t == 4 : ok
> Checking if size of int64_t == 1 : not found
> Checking if size of int64_t == 2 : not found
> Checking if size of int64_t == 4 : not found
> Checking if size of int64_t == 8 : ok
> Checking if size of uint64_t == 1 : not found
> Checking if size of uint64_t == 2 : not found
> Checking if size of uint64_t == 4 : not found
> Checking if size of uint64_t == 8 : ok
> Checking if size of void* == 1 : not found
> Checking if size of void* == 2 : not found
> Checking if size of void* == 4 : not found
> Checking if size of void* == 8 : ok
> Checking if size of off_t == 1 : not found
> Checking if size of off_t == 2 : not found
> Checking if size of off_t == 4 : not found
> Checking if size of off_t == 8 : ok
> Checking if size of dev_t == 1 : not found
> Checking if size of dev_t == 2 : not found
> Checking if size of dev_t == 4 : not found
> Checking if size of dev_t == 8 : ok
> Checking if size of ino_t == 1 : not found
> Checking if size of ino_t == 2 : not found
> Checking if size of ino_t == 4 : not found
> Checking if size of ino_t == 8 : ok
> Checking if size of time_t == 1 : not found
> Checking if size of time_t == 2 : not found
> Checking if size of time_t == 4 : not found
> Checking if size of time_t == 8 : ok
> Checking for socklen_t : ok
> Checking for struct ifaddrs : ok
> Checking for struct addrinfo : ok
> Checking for struct sockaddr : ok
> Checking for HAVE_STRUCT_SOCKADDR_IN6 : ok
> Checking for struct sockaddr_storage : ok
> Checking for sa_family_t : ok
> Checking for sig_atomic_t : ok
> Checking for sigsetmask : ok
> Checking for siggetmask : ok
> Checking for sigprocmask : ok
> Checking for sigblock : ok
> Checking for sigaction : ok
> Checking for sigset : ok
> Checking for inet_ntoa : ok
> Checking for inet_aton : ok
> Checking for inet_ntop : ok
> Checking for inet_pton : ok
> Checking for connect : ok
> Checking for gethostbyname : ok
> Checking for getaddrinfo : ok
> Checking for getnameinfo : ok
> Checking for freeaddrinfo : ok
> Checking for gai_strerror : ok
> Checking for socketpair : ok
> Checking for memset_s : not found
> Checking for memset_explicit : not found
> Checking for volatile memory protection : ok
> Checking for variable IPV6_V6ONLY : ok
> Checking for header net/if.h : yes
> Checking for HAVE_IPV6 : ok
> Checking whether we have ucontext_t : ok
> Checking for __sync_fetch_and_add compiler builtin : ok
> Checking for atomic_add_32 compiler builtin : not found
> Checking for atomic_thread_fence(memory_order_seq_cst) in stdatomic.h : ok
> Checking for fallthrough attribute : ok
> Checking for strdup : ok
> Checking for memmem : ok
> Checking for printf : ok
> Checking for memset : ok
> Checking for memcpy : ok
> Checking for memmove : ok
> Checking for strcpy : ok
> Checking for strncpy : ok
> Checking for bzero : ok
> Checking for shl_load : not found
> Checking for shl_unload : not found
> Checking for shl_findsym : not found
> Checking for pipe : ok
> Checking for strftime : ok
> Checking for srandom : ok
> Checking for random : ok
> Checking for srand : ok
> Checking for rand : ok
> Checking for usleep : ok
> Checking for setbuffer : ok
> Checking for lstat : ok
> Checking for getpgrp : ok
> Checking for utime : ok
> Checking for utimes : ok
> Checking for setuid : ok
> Checking for seteuid : ok
> Checking for setreuid : ok
> Checking for setresuid : ok
> Checking for setgid : ok
> Checking for setegid : ok
> Checking for setregid : ok
> Checking for setresgid : ok
> Checking for chroot : ok
> Checking for strerror : ok
> Checking for vsyslog : ok
> Checking for setlinebuf : ok
> Checking for mktime : ok
> Checking for ftruncate : ok
> Checking for chsize : not found
> Checking for rename : ok
> Checking for waitpid : ok
> Checking for wait4 : ok
> Checking for initgroups : ok
> Checking for pread : ok
> Checking for pwrite : ok
> Checking for strndup : ok
> Checking for strcasestr : ok
> Checking for strsep : ok
> Checking for strtok_r : ok
> Checking for mkdtemp : ok
> Checking for dup2 : ok
> Checking for dprintf : ok
> Checking for vdprintf : ok
> Checking for isatty : ok
> Checking for chown : ok
> Checking for lchown : ok
> Checking for link : ok
> Checking for readlink : ok
> Checking for symlink : ok
> Checking for realpath : ok
> Checking for snprintf : ok
> Checking for vsnprintf : ok
> Checking for asprintf : ok
> Checking for vasprintf : ok
> Checking for setenv : ok
> Checking for unsetenv : ok
> Checking for strnlen : ok
> Checking for strtoull : ok
> Checking for __strtoull : not found
> Checking for strtouq : ok
> Checking for strtoll : ok
> Checking for __strtoll : not found
> Checking for strtoq : ok
> Checking for memalign : ok
> Checking for posix_memalign : ok
> Checking for fmemopen : ok
> Checking for header malloc.h : yes
> Checking for declaration of memalign : ok
> Checking for posix_fallocate-capable libc : ok
> Checking for posix_fallocate : ok
> Checking for prctl : ok
> Checking for dirname : ok
> Checking for basename : ok
> Checking for strlcpy : not found
> Checking for strlcat : not found
> Checking for strlcpy : not found
> Checking for strlcat : not found
> Checking for library bsd : yes
> Checking for strlcpy in bsd : ok
> Checking for strlcat in bsd : ok
> Checking for getpeereid : not found
> Checking for getpeereid in bsd : ok
> Checking for library setproctitle : no
> Checking for setproctitle : not found
> Checking for setproctitle in bsd : ok
> Checking for setproctitle_init : not found
> Checking for setproctitle_init in bsd : ok
> Checking for closefrom : not found
> Checking for closefrom in bsd : ok
> Checking whether we can use SO_PEERCRED to get socket credentials : ok
> Checking correct behavior of strtoll : ok
> Checking for if_nametoindex : ok
> Checking for strerror_r : ok
> Checking for syslog : ok
> Checking for gai_strerror : ok
> Checking for get_current_dir_name : ok
> Checking for timegm : ok
> Checking for getifaddrs : ok
> Checking for freeifaddrs : ok
> Checking for mmap : ok
> Checking for setgroups : ok
> Checking for syscall : ok
> Checking for setsid : ok
> Checking for getgrent_r : ok
> Checking for getgrgid_r : ok
> Checking for getgrnam_r : ok
> Checking for getgrouplist : ok
> Checking for getpagesize : ok
> Checking for getpwent_r : ok
> Checking for getpwnam_r : ok
> Checking for getpwuid_r : ok
> Checking for epoll_create : ok
> Checking for port_create : not found
> Checking for getprogname : not found
> Checking for getxattr : ok
> Checking whether xattr interface takes additional options : not found
> Checking for dlopen : not found
> Checking for dlsym : not found
> Checking for dlerror : not found
> Checking for dlclose : not found
> Checking for library dl : yes
> Checking for dlopen in dl : ok
> Checking for dlsym in dl : ok
> Checking for dlerror in dl : ok
> Checking for dlclose in dl : ok
> Checking for declaration of dlopen : ok
> Checking C prototype for dlopen : not found
> Checking for fdatasync : ok
> Checking for declaration of fdatasync : ok
> Checking for clock_gettime : ok
> Checking whether the clock_gettime clock ID CLOCK_MONOTONIC is available : ok
> Checking whether the clock_gettime clock ID CLOCK_PROCESS_CPUTIME_ID is available : ok
> Checking whether the clock_gettime clock ID CLOCK_REALTIME is available : ok
> Checking for struct timespec : ok
> Checking for header arpa/nameser.h : yes
> Checking for header resolv.h : yes
> Checking for res_search : not found
> Checking for library resolv : yes
> Checking for res_search in resolv : ok
> Checking for header libintl.h : yes
> Checking for library intl : no
> Checking for declaration of dgettext : ok
> Checking for declaration of gettext : ok
> Checking for declaration of bindtextdomain : ok
> Checking for declaration of textdomain : ok
> Checking for declaration of bind_textdomain_codeset : ok
> Checking for bindtextdomain : ok
> Checking for textdomain : ok
> Checking for bind_textdomain_codeset : ok
> Checking for dgettext : ok
> Checking for gettext : ok
> Checking for pthread_create : not found
> Checking for library pthread : yes
> Checking for pthread_create in pthread : ok
> Checking for pthread_attr_init : ok
> Checking for pthread_mutexattr_setrobust : not found
> Checking for pthread_mutexattr_setrobust in pthread : ok
> Checking for declaration of PTHREAD_MUTEX_ROBUST : not found
> Checking for declaration of PTHREAD_MUTEX_ROBUST (as enum) : ok
> Checking for pthread_mutex_consistent : not found
> Checking for pthread_mutex_consistent in pthread : ok
> Checking for __thread local storage : ok
> Checking for crypt : not found
> Checking for library crypt : yes
> Checking for crypt in crypt : ok
> Checking for crypt_r : not found
> Checking for crypt_r in crypt : ok
> Checking for crypt_rn : not found
> Checking for crypt_rn in crypt : ok
> Checking for header readline.h : no
> Checking for header readline/readline.h : yes
> Checking for header readline/history.h : yes
> Checking for variable rl_event_hook : ok
> Checking for variable program_invocation_short_name : ok
> Checking for declaration of snprintf : ok
> Checking for declaration of vsnprintf : ok
> Checking for declaration of asprintf : ok
> Checking for declaration of vasprintf : ok
> Checking for declaration of errno : ok
> Checking for declaration of EWOULDBLOCK : ok
> Checking for declaration of environ : ok
> Checking for declaration of getgrent_r : ok
> Checking for declaration of getpwent_r : ok
> Checking for declaration of pread : ok
> Checking for declaration of pwrite : ok
> Checking for declaration of setenv : ok
> Checking for declaration of setresgid : ok
> Checking for declaration of setresuid : ok
> Checking for eventfd : ok
> Checking for header poll.h : yes
> Checking for poll : ok
> Checking for strptime : ok
> Checking for declaration of strptime : ok
> Checking for working strptime : ok
> Checking for declaration of gettimeofday : ok
> Checking C prototype for gettimeofday : not found
> Checking C prototype for gettimeofday : ok
> Checking for C99 vsnprintf : ok
> Checking for HAVE_SHARED_MMAP : ok
> Checking for HAVE_MREMAP : ok
> Checking for HAVE_INCOHERENT_MMAP : ok
> Checking for HAVE_IMMEDIATE_STRUCTURES : ok
> Checking for HAVE_MKDIR_MODE : ok
> Checking for member st_rdev in struct stat : ok
> Checking for member st_rdev in struct stat : ok
> Checking for member ss_family in struct sockaddr_storage : ok
> Checking for member __ss_family in struct sockaddr_storage : not found
> Checking for member sa_len in struct sockaddr : not found
> Checking for member sin_len in struct sockaddr_in : not found
> Checking for member sin6_len in struct sockaddr_in6 : not found
> Checking for HAVE_UNIXSOCKET : ok
> Checking for HAVE_SECURE_MKSTEMP : ok
> Checking for HAVE_IFACE_GETIFADDRS : not found
> Checking for HAVE_IFACE_AIX : not found
> Checking for HAVE_IFACE_IFCONF : not found
> Checking for HAVE_IFACE_IFREQ : not found
> Checking for declaration of getpwent_r : ok
> Checking C prototype for getpwent_r : not found
> Checking for declaration of getgrent_r : ok
> Checking C prototype for getgrent_r : not found
> Checking C prototype for getpwent_r : not found
> Checking C prototype for getgrent_r : not found
> Checking for strerror_r : ok
> Checking for XSI (rather than GNU) prototype for strerror_r : not found
> Checking for program 'xsltproc' : /usr/bin/xsltproc
> Checking for stylesheet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl : ok
> Checking for header sys/auxv.h : yes
> Checking for getauxval : ok
> Checking if compiler accepts -fstack-protector-strong : no
> Checking if compiler accepts -fstack-protector : no
> Checking if compiler accepts -fstack-clash-protection : yes
> Checking linker accepts -Wl,-no-undefined : yes
> Checking linker accepts ['-undefined', 'dynamic_lookup'] : no
> Checking for program 'python3' : /usr/bin/python3
> Checking for program 'python' : /usr/bin/python3
> Checking for program 'python3' : /usr/bin/python3
> Checking for python version >= 3.6.0 : 3.9.5
> python headers : Check disabled du
> e to --disable-python
> 'configure' finished successfully (13.850s)
> PYTHONHASHSEED=1 WAF_MAKE=1 `PATH=buildtools/bin:../../buildtools/bin:$PATH which waf` build
> Build commands will be stored in bin/default/compile_commands.json
> Waf: Entering directory `/home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/bin/default'
> [ 6/18] Linking bin/default/libtalloc.so
> Waf: Leaving directory `/home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/bin/default'
> 'build' finished successfully (0.044s)
> PYTHONHASHSEED=1 WAF_MAKE=1 `PATH=buildtools/bin:../../buildtools/bin:$PATH which waf` install
> Waf: Entering directory `/home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/bin/default'
> - install /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/pkgconfig/talloc.pc (from bin/
> default/talloc.pc)
> [ 7/22] Linking bin/default/libtalloc.so
> - symlink /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/libtalloc.so.2 (to libtalloc.s
> o.2.3.2)
> - symlink /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/libtalloc.so (to libtalloc.so.
> 2.3.2)
> + install /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/libtalloc.so.2.3.2 (from bin/d
> efault/libtalloc.so)
> - install /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/include/talloc.h (from talloc.h)
> - install /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/share/man/man3/talloc.3 (from bin/
> default/man/talloc.3)
> Waf: Leaving directory `/home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/bin/default'
> 'install' finished successfully (0.035s)#####################################################
> The output library is x86 obviously
> $ file /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/libtalloc.so.2.3.2
> /home/kubast2/Desktop/proot/aarch64/samba.org/ftp/talloc/2.3.2/aarch64/lib/libtalloc.so.2.3.2: ELF 64-bit LSB share
> d object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f75d0dbe6e1f1efe57920c673c37a1fc188a6d18, not
> stripped
> #####################################################
>
> Maybe what I do is a bit insane, but I don't know how to go about it, and hence why it looks the way it does.
> The scripts are meant to work with aarch64, arm, x86, x86_64 targets;
> But I just don't have a clue what answers to give, what enivormental variables to change, nor how to get configure of this library right;
> I do know if it uses host include paths and hence it probes the host rather than what I actually want it to probe;
>
> Best regards,
> Jakub Strzelecki


More information about the samba-technical mailing list