fi
BUILD_ARCH="${build_arch}"
+ TOOLS_DIR="/tools_${BUILD_ARCH}"
# Enables hardening
HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4"
- CFLAGS="-O2 -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+ CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+ CXXFLAGS="${CFLAGS}"
- # Run compiler and assembler simultaneously on systems that have enough memory
- if [ ${HOST_MEM} -ge 1024 ]; then
- CFLAGS="${CFLAGS} -pipe"
- fi
+ # Determine parallelism
+ if [ -z "${MAKETUNING}" ]; then
+ # We assume that each process consumes about
+ # 192MB of memory. Therefore we find out how
+ # many processes fit into memory.
+ local mem_max=$(( ${HOST_MEM} / 192 ))
- CXXFLAGS="${CFLAGS}"
+ local processors="$(system_processors)"
+ local cpu_max=$(( ${processors} * 2 ))
+
+ local parallelism
+ if [ ${mem_max} -lt ${cpu_max} ]; then
+ parallelism=${mem_max}
+ else
+ parallelism=${cpu_max}
+ fi
+
+ MAKETUNING="-j${parallelism}"
+ fi
}
configure_build_guess() {
echo "aarch64"
;;
- armv7*)
- echo "armv7hl"
- ;;
-
- armv6*|armv5*)
+ armv7*|armv6*|armv5*)
echo "armv5tel"
;;
}
fake_environ() {
- [ -e "${BASEDIR}/build/tools/lib/libpakfire_preload.so" ] || return
+ [ -e "${BASEDIR}/build${TOOLS_DIR}/lib/libpakfire_preload.so" ] || return
- local env="LD_PRELOAD=/tools/lib/libpakfire_preload.so"
+ local env="LD_PRELOAD=${TOOLS_DIR}/lib/libpakfire_preload.so"
# Fake kernel version, because some of the packages do not compile
# with kernel 3.0 and later.
# Install QEMU helper, if needed
qemu_install_helper
- local PATH="/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin"
+ local PATH="${TOOLS_DIR}/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:${TOOLS_DIR}/bin"
PATH="${PATH}" chroot ${LFS} env -i \
HOME="/root" \
VERSION="${VERSION}" \
CORE="${CORE}" \
SLOGAN="${SLOGAN}" \
+ TOOLS_DIR="${TOOLS_DIR}" \
CONFIG_ROOT="${CONFIG_ROOT}" \
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
local PKG_TIME_START=`date +%s`
cd $BASEDIR/lfs && env -i \
- PATH="/tools/ccache/bin:/tools/bin:$PATH" \
+ PATH="${TOOLS_DIR}/ccache/bin:${TOOLS_DIR}/bin:$PATH" \
CCACHE_DIR="${CCACHE_DIR}" \
CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
MAKETUNING="${MAKETUNING}" \
make -f $* \
TOOLCHAIN=1 \
+ TOOLS_DIR="${TOOLS_DIR}" \
CROSSTARGET="${CROSSTARGET}" \
BUILDTARGET="${BUILDTARGET}" \
BUILD_ARCH="${BUILD_ARCH}" \