Skip to content

Commit

Permalink
scripts: cross-compilation implementation (compilation of 32-bit prog…
Browse files Browse the repository at this point in the history
…rams for 64-bit arch)

- New variables have been implemented:
 - TERMUX_PKG_BUILD32 - enables or disables cross-compilation of the package
 - TERMUX_PKG_BUILD32DIR - path to compiled cross-package components
 - TERMUX_LIB64_PATH - 64-bit library path
 - TERMUX_LIB32_PATH - 32-bit library path
 - TERMUX_LIB_PATH - path to the library which changes depending on the compilation type (non-cross - TERMUX_LIB64_PATH, cross - TERMUX_LIB32_PATH)
- Implemented cross functions (termux_step_configure32, termux_step_make32 and termux_step_make_install32).
- The application environment setup scheme has been updated to ensure that cgct works properly. It now sets up temporary glibc, glibc32 packages, and libgcc symbolic links from cgct when needed. The updated scheme also allows forks to easily build glibc packages for their applications.
- The glibc package naming standard has been updated, now glibc packages can be named with the "glibc32" prefix.
  • Loading branch information
Maxython committed Jan 25, 2025
1 parent ccb5572 commit d13b79d
Show file tree
Hide file tree
Showing 22 changed files with 226 additions and 103 deletions.
26 changes: 26 additions & 0 deletions build-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,14 @@ termux_check_package_in_building_packages_list() {
return $?
}

termux_set_crosses_arch() {
case $TERMUX_ARCH in
"aarch64") TERMUX_ARCH="arm";;
"x86_64") TERMUX_ARCH="i686";;
*) termux_error_exit "It is impossible to set crosses arch for ${TERMUX_ARCH} arch, because it is 32 bit. Only 64 bit arch are supported."
esac
}

# Special hook to prevent use of "sudo" inside package build scripts.
# build-package.sh shouldn't perform any privileged operations.
sudo() {
Expand Down Expand Up @@ -657,15 +665,33 @@ for ((i=0; i<${#PACKAGE_LIST[@]}; i++)); do
# to tools so need to run part of configure step
cd "$TERMUX_PKG_BUILDDIR"
termux_step_configure
if [ "$TERMUX_PKG_BUILD32" = "true" ]; then
(
termux_step_setup_build32_environment
termux_step_configure32
)
fi

if [ "$TERMUX_CONTINUE_BUILD" == "false" ]; then
cd "$TERMUX_PKG_BUILDDIR"
termux_step_post_configure
fi
cd "$TERMUX_PKG_BUILDDIR"
termux_step_make
if [ "$TERMUX_PKG_BUILD32" = "true" ]; then
(
termux_step_setup_build32_environment
termux_step_make32
)
fi
cd "$TERMUX_PKG_BUILDDIR"
termux_step_make_install
if [ "$TERMUX_PKG_BUILD32" = "true" ]; then
(
termux_step_setup_build32_environment
termux_step_make_install32
)
fi
cd "$TERMUX_PKG_BUILDDIR"
termux_step_post_make_install
termux_step_install_service_scripts
Expand Down
4 changes: 4 additions & 0 deletions scripts/build/configure/termux_step_configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ termux_step_configure() {
termux_step_configure_meson
fi
}

termux_step_configure32() {
termux_step_configure
}
4 changes: 2 additions & 2 deletions scripts/build/configure/termux_step_configure_autotools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ termux_step_configure_autotools() {
QUIET_BUILD="--enable-silent-rules --silent --quiet"
fi

if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ] && [ ! -d "$TERMUX_PKG_TMPDIR/config-scripts" ]; then
# Some packages provides a $PKG-config script which some configure scripts pickup instead of pkg-config:
mkdir "$TERMUX_PKG_TMPDIR/config-scripts"
for f in $TERMUX_PREFIX/bin/*config; do
Expand Down Expand Up @@ -104,7 +104,7 @@ termux_step_configure_autotools() {
env $AVOID_GNULIB "$TERMUX_PKG_SRCDIR/configure" \
--disable-dependency-tracking \
--prefix=$TERMUX_PREFIX \
--libdir=$TERMUX_PREFIX/lib \
--libdir=$TERMUX_LIB_PATH \
--sbindir=$TERMUX_PREFIX/bin \
--disable-rpath --disable-rpath-hack \
$HOST_FLAG \
Expand Down
2 changes: 1 addition & 1 deletion scripts/build/configure/termux_step_configure_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ termux_step_configure_cmake() {
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_INSTALL_PREFIX=$TERMUX_PREFIX \
-DCMAKE_INSTALL_LIBDIR=$TERMUX_PREFIX/lib \
-DCMAKE_INSTALL_LIBDIR=$TERMUX_LIB_PATH \
-DCMAKE_MAKE_PROGRAM=$MAKE_PROGRAM_PATH \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DCMAKE_USE_SYSTEM_LIBRARIES=True \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ termux_step_configure_haskell_build() {
$TERMUX_HASKELL_OPTIMISATION \
--prefix="$TERMUX_PREFIX" \
--configure-option="$HOST_FLAG" \
--ghc-options="-optl-Wl,-rpath,$TERMUX_PREFIX/lib -optl-Wl,--enable-new-dtags" \
--ghc-options="-optl-Wl,-rpath,$TERMUX_LIB_PATH -optl-Wl,--enable-new-dtags" \
--with-compiler="$(command -v ghc)" \
--with-ghc-pkg="$(command -v ghc-pkg)" \
--with-hsc2hs="$(command -v hsc2hs)" \
--hsc2hs-option=--cross-compile \
--extra-lib-dirs="$TERMUX_PREFIX/lib" \
--extra-lib-dirs="$TERMUX_LIB_PATH" \
--extra-include-dirs="$TERMUX_PREFIX/include" \
--with-ld="$LD" \
--with-strip="$STRIP" \
Expand Down
2 changes: 1 addition & 1 deletion scripts/build/configure/termux_step_configure_meson.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ termux_step_configure_meson() {
$TERMUX_PKG_BUILDDIR \
--$(test "${TERMUX_PKG_MESON_NATIVE}" = "true" && echo "native-file" || echo "cross-file") $TERMUX_MESON_CROSSFILE \
--prefix $TERMUX_PREFIX \
--libdir lib \
--libdir $(test "${TERMUX_PKG_BUILD32}" = "true" && echo "lib32" || echo "lib") \
--buildtype ${_meson_buildtype} \
${_meson_stripflag} \
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
Expand Down
2 changes: 1 addition & 1 deletion scripts/build/setup/termux_setup_golang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@ termux_setup_golang() {
exit 1
fi

export GOROOT="$TERMUX_PREFIX/lib/go"
export GOROOT="$TERMUX_LIB_PATH/go"
fi
}
4 changes: 2 additions & 2 deletions scripts/build/termux_create_debian_subpackages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ termux_create_debian_subpackages() {
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
_ADD_PREFIX="glibc/"
fi
if [ "$TERMUX_PKG_NO_STATICSPLIT" = "false" ] && [[ -n $(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib/**/*.a) ]]; then
if [ "$TERMUX_PKG_NO_STATICSPLIT" = "false" ] && [[ -n $(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib{,32}/**/*.a) ]]; then
# Add virtual -static sub package if there are include files:
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib{,32} -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
fi

Expand Down
4 changes: 2 additions & 2 deletions scripts/build/termux_create_pacman_subpackages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ termux_create_pacman_subpackages() {
if [ "$TERMUX_PACKAGE_LIBRARY" = "glibc" ]; then
_ADD_PREFIX="glibc/"
fi
if [ "$TERMUX_PKG_NO_STATICSPLIT" = "false" ] && [[ -n $(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib/**/*.a) ]]; then
if [ "$TERMUX_PKG_NO_STATICSPLIT" = "false" ] && [[ -n $(shopt -s globstar; shopt -s nullglob; echo ${_ADD_PREFIX}lib{,32}/**/*.a) ]]; then
# Add virtual -static sub package if there are include files:
local _STATIC_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-static.subpackage.sh
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
echo TERMUX_SUBPKG_INCLUDE=\"$(find ${_ADD_PREFIX}lib{,32} -name '*.a' -o -name '*.la') $TERMUX_PKG_STATICSPLIT_EXTRA_PATTERNS\" > "$_STATIC_SUBPACKAGE_FILE"
echo "TERMUX_SUBPKG_DESCRIPTION=\"Static libraries for ${TERMUX_PKG_NAME}\"" >> "$_STATIC_SUBPACKAGE_FILE"
fi

Expand Down
4 changes: 4 additions & 0 deletions scripts/build/termux_step_make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ termux_step_make() {
fi
fi
}

termux_step_make32() {
termux_step_make
}
4 changes: 4 additions & 0 deletions scripts/build/termux_step_make_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ termux_step_make_install() {
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
fi
}

termux_step_make_install32() {
termux_step_make_install
}
4 changes: 2 additions & 2 deletions scripts/build/termux_step_massage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ termux_step_massage() {
if [ "$TERMUX_PKG_NO_STRIP" != "true" ] && [ "$TERMUX_DEBUG_BUILD" = "false" ]; then
# Strip binaries. file(1) may fail for certain unusual files, so disable pipefail.
set +e +o pipefail
find . \( -path "./bin/*" -o -path "./lib/*" -o -path "./libexec/*" \) -type f |
find . \( -path "./bin/*" -o -path "./lib/*" -o -path "./lib32/*" -o -path "./libexec/*" \) -type f |
xargs -r file | grep -E "ELF .+ (executable|shared object)" | cut -f 1 -d : |
xargs -r "$STRIP" --strip-unneeded --preserve-dates
set -e -o pipefail
fi

if [ "$TERMUX_PKG_NO_ELF_CLEANER" != "true" ]; then
# Remove entries unsupported by Android's linker:
find . \( -path "./bin/*" -o -path "./lib/*" -o -path "./libexec/*" -o -path "./opt/*" \) -type f -print0 | xargs -r -0 \
find . \( -path "./bin/*" -o -path "./lib/*" -o -path "./lib32/*" -o -path "./libexec/*" -o -path "./opt/*" \) -type f -print0 | xargs -r -0 \
"$TERMUX_ELF_CLEANER" --api-level $TERMUX_PKG_API_LEVEL
fi
fi
Expand Down
2 changes: 2 additions & 0 deletions scripts/build/termux_step_setup_build_folders.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ termux_step_setup_build_folders() {
# permissions which makes them undeletable. We need to fix
# that.
[ -d "$TERMUX_PKG_BUILDDIR" ] && chmod +w -R "$TERMUX_PKG_BUILDDIR" || true
[ -d "$TERMUX_PKG_BUILD32DIR" ] && chmod +w -R "$TERMUX_PKG_BUILD32DIR" || true
[ -d "$TERMUX_PKG_SRCDIR" ] && chmod +w -R "$TERMUX_PKG_SRCDIR" || true
if [ "$TERMUX_SKIP_DEPCHECK" = false ] && \
[ "$TERMUX_INSTALL_DEPS" = true ] && \
Expand All @@ -17,6 +18,7 @@ termux_step_setup_build_folders() {

# Cleanup old build state:
rm -Rf "$TERMUX_PKG_BUILDDIR" \
"$TERMUX_PKG_BUILD32DIR" \
"$TERMUX_PKG_SRCDIR"

# Cleanup old packaging state:
Expand Down
145 changes: 93 additions & 52 deletions scripts/build/termux_step_setup_cgct_environment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,68 +3,109 @@
termux_step_setup_cgct_environment() {
[ "$TERMUX_ON_DEVICE_BUILD" = "true" ] && return

if [ "$TERMUX_REPO_PACKAGE" != "$TERMUX_APP_PACKAGE" ]; then
echo "WARNING: It is not possible to install glibc core packages from the repo for operation of CGCT, you must install glibc packages for your application with the prefix '$TERMUX_PREFIX' yourself (core packages: glibc and linux-api-headers-glibc)."
return
termux_install_temporary_glibc
termux_set_links_to_libgcc_of_cgct

if [ "$TERMUX_PKG_BUILD32" = "true" ]; then
(
termux_set_crosses_arch
TERMUX_LIB_PATH="$TERMUX_LIB32_PATH"
termux_install_temporary_glibc
termux_set_links_to_libgcc_of_cgct
)
fi
}

for PKG in gcc-libs-glibc glibc linux-api-headers-glibc; do
local PKG_DIR=$(ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null || \
ls ${TERMUX_SCRIPTDIR}/*/${PKG/-glibc/}/build.sh 2> /dev/null)
if [ -z "$PKG_DIR" ]; then
termux_error_exit "Could not find build.sh file for package '${PKG}'"
fi
local PKG_DIR_SPLIT=(${PKG_DIR//// })
# The temporary glibc is a glibc used only during compilation of simple packages
# or a full glibc that will be customized for the system and replace the temporary glibc
termux_install_temporary_glibc() {
local PKG="glibc"
local cross_glibc=false
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
cross_glibc=true
PKG+="32"
fi

local REPO_NAME=""
local LIST_PACKAGES_DIRECTORIES=(${TERMUX_PACKAGES_DIRECTORIES})
for idx in ${!LIST_PACKAGES_DIRECTORIES[@]}; do
if [ "${LIST_PACKAGES_DIRECTORIES[$idx]}" = "${PKG_DIR_SPLIT[-3]}" ]; then
REPO_NAME=$(echo "${TERMUX_REPO_URL[$idx]}" | sed -e 's%https://%%g' -e 's%http://%%g' -e 's%/%-%g')
if [ "$TERMUX_REPO_PKG_FORMAT" = "debian" ]; then
REPO_NAME+="-${TERMUX_REPO_DISTRIBUTION[$idx]}-Release"
elif [ "$TERMUX_REPO_PKG_FORMAT" = "pacman" ]; then
REPO_NAME+="-json"
fi
break
fi
done
if [ -z "$REPO_NAME" ]; then
termux_error_exit "Could not find '${PKG_DIR_SPLIT[-3]}' repo"
# Checking if temporary glibc needs to be installed
if [ -f "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-temporary-for-cgct" ]; then
return
fi
local PKG_DIR=$(ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null || \
ls ${TERMUX_SCRIPTDIR}/*/${PKG}/build.sh 2> /dev/null)
if [ -n "$PKG_DIR" ]; then
read DEP_ARCH DEP_VERSION DEP_VERSION_PAC <<< $(termux_extract_dep_info $PKG "${PKG_DIR/'/build.sh'/}")
if termux_package__is_package_version_built "$PKG" "$DEP_VERSION"; then
return
fi
fi

read DEP_ARCH DEP_VERSION DEP_VERSION_PAC <<< $(termux_extract_dep_info $PKG "${PKG_DIR/'/build.sh'/}")
[ ! "$TERMUX_QUIET_BUILD" = "true" ] && echo "Installing temporary '${PKG}' for the CGCT tool environment."

if ! termux_package__is_package_version_built "$PKG" "$DEP_VERSION" && [ ! -f "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-for-cgct" ]; then
[ ! "$TERMUX_QUIET_BUILD" = "true" ] && echo "Installing '${PKG}' for the CGCT tool environment."
local PREFIX_TMP_GLIBC="data/data/com.termux/files/usr/glibc"
local PATH_TMP_GLIBC="$TERMUX_COMMON_CACHEDIR/temporary_glibc_for_cgct"
mkdir -p "$PATH_TMP_GLIBC"

if [ ! -f "${TERMUX_COMMON_CACHEDIR}-${DEP_ARCH}/${REPO_NAME}" ]; then
TERMUX_INSTALL_DEPS=true termux_get_repo_files
fi
local GPKG_LINK="https://service.termux-pacman.dev/gpkg/$TERMUX_ARCH"
local GPKG_JSON="$PATH_TMP_GLIBC/gpkg-$TERMUX_ARCH.json"
termux_download "$GPKG_LINK/gpkg.json" \
"$GPKG_JSON" \
SKIP_CHECKSUM

# Installing temporary glibc
local GLIBC_PKG=$(jq -r '."glibc"."FILENAME"' "$GPKG_JSON")
if [ ! -f "$PATH_TMP_GLIBC/$GLIBC_PKG" ]; then
termux_download "$GPKG_LINK/$GLIBC_PKG" \
"$PATH_TMP_GLIBC/$GLIBC_PKG" \
$(jq -r '."glibc"."SHA256SUM"' "$GPKG_JSON")
fi

[ ! "$TERMUX_QUIET_BUILD" = true ] && echo "extracting temporary $PKG..."

if ! TERMUX_WITHOUT_DEPVERSION_BINDING=true termux_download_deb_pac $PKG $DEP_ARCH $DEP_VERSION $DEP_VERSION_PAC; then
termux_error_exit "Failed to download package '${PKG}'"
# Unpacking temporary glibc
tar -xJf "$PATH_TMP_GLIBC/$GLIBC_PKG" -C "$PATH_TMP_GLIBC" data
if [ "$cross_glibc" = "true" ]; then
# Installing lib32
mkdir -p "$TERMUX_LIB_PATH"
cp -r $PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/lib/* "$TERMUX_LIB_PATH"
# Installing include32
mkdir -p "$TERMUX_PREFIX/include32"
local hpath
for hpath in $(find "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include" -type f); do
local h=$(sed "s|$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include/||g" <<< "$hpath")
if [ -f "$TERMUX_PREFIX/include/$h" ] && \
[ $(md5sum "$hpath" | awk '{printf $1}') = $(md5sum "$TERMUX_PREFIX/include/$h" | awk '{printf $1}') ]; then
rm "$hpath"
fi
done
find "$PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include" -type d -empty -delete
cp -r $PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/include/* $TERMUX_PREFIX/include32
# Installing dynamic linker in lib
mkdir -p "$TERMUX_LIB64_PATH"
local ld_path=$(ls $TERMUX_LIB_PATH/ld-*)
ln -sr "${ld_path}" "$TERMUX_LIB64_PATH/$(basename ${ld_path})"
else
# Complete installation of glibc components
cp -r $PATH_TMP_GLIBC/$PREFIX_TMP_GLIBC/* "$TERMUX_PREFIX"
fi
# It is necessary to reconfigure the paths in libc.so
# for correct work of cross-compilation and compilation in forked projects
sed -i "s|/$PREFIX_TMP_GLIBC/lib/|$TERMUX_LIB_PATH/|g" "$TERMUX_LIB_PATH/libc.so"

[ ! "$TERMUX_QUIET_BUILD" = true ] && echo "extracting $PKG to $TERMUX_COMMON_CACHEDIR-$DEP_ARCH..."
(
cd $TERMUX_COMMON_CACHEDIR-$DEP_ARCH
if [ "$TERMUX_REPO_PKG_FORMAT" = "debian" ]; then
ar x ${PKG}_${DEP_VERSION}_${DEP_ARCH}.deb data.tar.xz
if tar -tf data.tar.xz|grep "^./$">/dev/null; then
tar -xf data.tar.xz --strip-components=1 \
--no-overwrite-dir -C /
else
tar -xf data.tar.xz --no-overwrite-dir -C /
fi
elif [ "$TERMUX_REPO_PKG_FORMAT" = "pacman" ]; then
tar -xJf "${PKG}-${DEP_VERSION_PAC}-${DEP_ARCH}.pkg.tar.xz" \
--anchored --exclude=.{BUILDINFO,PKGINFO,MTREE,INSTALL} \
--force-local --no-overwrite-dir -C /
fi
)
mkdir -p $TERMUX_BUILT_PACKAGES_DIRECTORY
echo "" > "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-for-cgct"
# Marking the installation of temporary glibc
rm -fr "$PATH_TMP_GLIBC/data"
mkdir -p "$TERMUX_BUILT_PACKAGES_DIRECTORY"
touch "$TERMUX_BUILT_PACKAGES_DIRECTORY/$PKG-temporary-for-cgct"
}

# Sets up symbolic links to libgcc* libraries (from cgct) in the application environment
# to allow cgct to work properly, if necessary
termux_set_links_to_libgcc_of_cgct() {
local libgcc_cgct
mkdir -p "$TERMUX_LIB_PATH"
for libgcc_cgct in $(find "$CGCT_DIR/$TERMUX_ARCH/lib" -maxdepth 1 -type f -name 'libgcc*'); do
if [ ! -e "$TERMUX_LIB_PATH/$(basename $libgcc_cgct)" ]; then
cp -r "$libgcc_cgct" "$TERMUX_LIB_PATH"
fi
done
}

10 changes: 10 additions & 0 deletions scripts/build/termux_step_setup_toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,13 @@ termux_step_setup_toolchain() {
termux_setup_toolchain_gnu
fi
}

termux_step_setup_build32_environment() {
termux_set_crosses_arch
TERMUX_LIB_PATH="$TERMUX_LIB32_PATH"
TERMUX_PKG_BUILDDIR="$TERMUX_PKG_BUILD32DIR"
termux_step_setup_arch_variables
termux_step_setup_pkg_config_libdir
termux_step_setup_toolchain
cd $TERMUX_PKG_BUILDDIR
}
Loading

0 comments on commit d13b79d

Please sign in to comment.