diff -uNr abuild-3.4.0/functions.sh.in abuild-3.4.0.mod/functions.sh.in --- abuild-3.4.0/functions.sh.in 2019-06-14 15:13:23.000000000 +0300 +++ abuild-3.4.0.mod/functions.sh.in 2019-07-21 17:00:19.730135313 +0300 @@ -5,40 +5,20 @@ arch_to_hostspec() { case "$1" in - aarch64) echo "aarch64-alpine-linux-musl" ;; - armel) echo "armv5-alpine-linux-musleabi" ;; - armhf) echo "armv6-alpine-linux-musleabihf" ;; - armv7) echo "armv7-alpine-linux-musleabihf" ;; - mips) echo "mips-alpine-linux-musl" ;; - mips64) echo "mips64-alpine-linux-musl" ;; - mipsel) echo "mipsel-alpine-linux-musl" ;; - mips64el) echo "mips64el-alpine-linux-musl" ;; - ppc) echo "powerpc-alpine-linux-musl" ;; - ppc64) echo "powerpc64-alpine-linux-musl" ;; - ppc64le) echo "powerpc64le-alpine-linux-musl" ;; - s390x) echo "s390x-alpine-linux-musl" ;; - x86) echo "i586-alpine-linux-musl" ;; - x86_64) echo "x86_64-alpine-linux-musl" ;; + aarch64) echo "aarch64-linux-android" ;; + arm) echo "arm-linux-androideabi" ;; + i686) echo "i686-linux-android" ;; + x86_64) echo "x86_64-linux-android" ;; *) echo "unknown" ;; esac } hostspec_to_arch() { case "$1" in - aarch64*-*-*-*) echo "aarch64" ;; - arm*-*-*-*eabi) echo "armel" ;; - armv6*-*-*-*eabihf) echo "armhf" ;; - armv7*-*-*-*eabihf) echo "armv7" ;; - i[0-9]86-*-*-*) echo "x86" ;; - mips-*-*-*) echo "mips" ;; - mips64-*-*-*) echo "mips64" ;; - mipsel-*-*-*) echo "mipsel" ;; - mips64el-*-*-*) echo "mips64el" ;; - powerpc-*-*-*) echo "ppc" ;; - powerpc64-*-*-*) echo "ppc64" ;; - powerpc64le-*-*-*) echo "ppc64le" ;; - s390x-*-*-*) echo "s390x" ;; - x86_64-*-*-*) echo "x86_64" ;; + aarch64-*) echo "aarch64" ;; + arm-*) echo "arm" ;; + i686-*) echo "i686" ;; + x86_64-*) echo "x86_64" ;; *) echo "unknown" ;; esac } @@ -114,7 +94,7 @@ PACKAGER=${_PACKAGER-$PACKAGER} USE_COLORS=${_USE_COLORS-$USE_COLORS} - [ -z "$CBUILD" ] && CBUILD="$(gcc -dumpmachine)" + [ -z "$CBUILD" ] && CBUILD="$(clang -dumpmachine)" [ -z "$CHOST" ] && CHOST="$CBUILD" [ -z "$CTARGET" ] && CTARGET="$CHOST" [ "$(arch_to_hostspec $CBUILD)" != "unknown" ] && CBUILD="$(arch_to_hostspec $CBUILD)" @@ -134,11 +114,71 @@ # setup build root [ -z "$CBUILDROOT" ] && export CBUILDROOT="$HOME/sysroot-$CTARGET_ARCH/" # prepare pkg-config for cross building - [ -z "$PKG_CONFIG_PATH" ] && export PKG_CONFIG_PATH="${CBUILDROOT}/usr/lib/pkgconfig/" + [ -z "$PKG_CONFIG_PATH" ] && export PKG_CONFIG_PATH="${CBUILDROOT}/lib/pkgconfig/" [ -z "$PKG_CONFIG_SYSROOT_DIR" ] && export PKG_CONFIG_SYSROOT_DIR="${CBUILDROOT}" + # libtool bug workaround for extra rpaths - [ -z "$lt_cv_sys_lib_dlsearch_path_spec" ] && \ - export lt_cv_sys_lib_dlsearch_path_spec="${CBUILDROOT}/lib ${CBUILDROOT}/usr/lib /usr/lib /lib /usr/local/lib" + if [ -z "$lt_cv_sys_lib_dlsearch_path_spec" ]; then + case $CTARGET_ARCH in + aarch64|x86_64) export lt_cv_sys_lib_dlsearch_path_spec="${CBUILDROOT}/lib @TERMUX_PREFIX@/lib /system/lib64" ;; + *) export lt_cv_sys_lib_dlsearch_path_spec="${CBUILDROOT}/lib @TERMUX_PREFIX@/lib /system/lib" ;; + esac + fi + + # Originally set in build-package.sh script in Termux build environment. + # https://github.com/termux/termux-packages/blob/master/build-package.sh + export ac_cv_func_getpwent=no + export ac_cv_func_getpwnam=no + export ac_cv_func_getpwuid=no + export ac_cv_func_sigsetmask=no + export ac_cv_c_bigendian=no + export ac_cv_func_calloc_0_nonnull=yes + export ac_cv_func_calloc_0_nonnull=yes + export ac_cv_func_chown_works=yes + export ac_cv_func_getgroups_works=yes + export ac_cv_func_malloc_0_nonnull=yes + export ac_cv_func_realloc_0_nonnull=yes + export am_cv_func_working_getline=yes + export gl_cv_C_locale_sans_EILSEQ=yes + export gl_cv_func_dup2_works=yes + export gl_cv_func_fcntl_f_dupfd_cloexec=yes + export gl_cv_func_fcntl_f_dupfd_works=yes + export gl_cv_func_fnmatch_posix=yes + export gl_cv_func_getcwd_abort_bug=no + export gl_cv_func_getcwd_null=yes + export gl_cv_func_getcwd_path_max=yes + export gl_cv_func_getcwd_posix_signature=yes + export gl_cv_func_gettimeofday_clobber=no + export gl_cv_func_gettimeofday_posix_signature=yes + export gl_cv_func_link_works=yes + export gl_cv_func_lstat_dereferences_slashed_symlink=yes + export gl_cv_func_malloc_0_nonnull=yes + export gl_cv_func_memchr_works=yes + export gl_cv_func_mkdir_trailing_dot_works=yes + export gl_cv_func_mkdir_trailing_slash_works=yes + export gl_cv_func_mkfifo_works=yes + export gl_cv_func_mknod_works=yes + export gl_cv_func_realpath_works=yes + export gl_cv_func_select_detects_ebadf=yes + export gl_cv_func_snprintf_posix=yes + export gl_cv_func_snprintf_retval_c99=yes + export gl_cv_func_snprintf_truncation_c99=yes + export gl_cv_func_stat_dir_slash=yes + export gl_cv_func_stat_file_slash=yes + export gl_cv_func_strerror_0_works=yes + export gl_cv_func_symlink_works=yes + export gl_cv_func_tzset_clobber=no + export gl_cv_func_unlink_honors_slashes=yes + export gl_cv_func_unlink_honors_slashes=yes + export gl_cv_func_vsnprintf_posix=yes + export gl_cv_func_vsnprintf_zerosize_c99=yes + export gl_cv_func_wcwidth_works=yes + export gl_cv_func_working_getdelim=yes + export gl_cv_func_working_mkstemp=yes + export gl_cv_func_working_mktime=yes + export gl_cv_func_working_strerror=yes + export gl_cv_header_working_fcntl_h=yes + # setup cross-compiler if [ -z "$CROSS_COMPILE" ]; then export CROSS_COMPILE="${CHOST}-" @@ -149,8 +189,8 @@ export HOSTCXXFLAGS="$CXXFLAGS" export HOSTCFLAGS="$CFLAGS" export HOSTLDFLAGS="$LDFLAGS" - export CC=${CROSS_COMPILE}gcc - export CXX=${CROSS_COMPILE}g++ + export CC=${CROSS_COMPILE}clang + export CXX=${CROSS_COMPILE}clang++ export LD=${CROSS_COMPILE}ld export CPPFLAGS="--sysroot=${CBUILDROOT} $CPPFLAGS" export CXXFLAGS="--sysroot=${CBUILDROOT} $CXXFLAGS"