mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 22:21:10 +02:00
Merge pull request #835 from dm0-/portage
Work with new portage sysroot behavior
This commit is contained in:
commit
237569143f
@ -19,17 +19,22 @@ configure_target_root() {
|
||||
CBUILD="$(portageq envvar CBUILD)" \
|
||||
CHOST="${cross_chost}" \
|
||||
ROOT="/build/${board}" \
|
||||
SYSROOT="/usr/${cross_chost}" \
|
||||
SYSROOT="/build/${board}" \
|
||||
_configure_sysroot "${profile}"
|
||||
}
|
||||
|
||||
build_target_toolchain() {
|
||||
local board="$1"
|
||||
local ROOT="/build/${board}"
|
||||
local SYSROOT="/usr/$(get_board_chost "${board}")"
|
||||
|
||||
mkdir -p "${ROOT}/usr"
|
||||
cp -at "${ROOT}" "${SYSROOT}"/lib*
|
||||
cp -at "${ROOT}"/usr "${SYSROOT}"/usr/include "${SYSROOT}"/usr/lib*
|
||||
|
||||
# --root is required because run_merge overrides ROOT=
|
||||
PORTAGE_CONFIGROOT="$ROOT" \
|
||||
run_merge -u --root="$ROOT" "${TOOLCHAIN_PKGS[@]}"
|
||||
run_merge -u --root="$ROOT" --sysroot="$ROOT" "${TOOLCHAIN_PKGS[@]}"
|
||||
}
|
||||
|
||||
configure_crossdev_overlay / /tmp/crossdev
|
||||
|
@ -257,7 +257,7 @@ _configure_sysroot() {
|
||||
$sudo eselect profile set --force "$profile"
|
||||
|
||||
$sudo tee "${ROOT}/etc/portage/make.conf" >/dev/null <<EOF
|
||||
$(portageq envvar -v CHOST CBUILD ROOT SYSROOT \
|
||||
$(portageq envvar -v CHOST CBUILD ROOT \
|
||||
PORTDIR PORTDIR_OVERLAY DISTDIR PKGDIR)
|
||||
HOSTCC=\${CBUILD}-gcc
|
||||
PKG_CONFIG_PATH="\${SYSROOT}/usr/lib/pkgconfig/"
|
||||
@ -372,7 +372,7 @@ install_cross_libs() {
|
||||
done | $sudo tee "${package_provided}/cross-${cross_chost}" >/dev/null
|
||||
|
||||
# OK, clear as mud? Install those dependencies now!
|
||||
PORTAGE_CONFIGROOT="$ROOT" ROOT="$ROOT" $sudo emerge "$@" -u $cross_deps
|
||||
PORTAGE_CONFIGROOT="$ROOT" $sudo emerge --root="$ROOT" --sysroot="$ROOT" "$@" -u $cross_deps
|
||||
}
|
||||
|
||||
# Get the latest GCC profile for a given CHOST
|
||||
|
@ -464,7 +464,7 @@ install_oem_package() {
|
||||
# build anything else from source here. emerge doesn't have a way to
|
||||
# enforce this in a single command.
|
||||
info "Building ${oem_pkg}"
|
||||
USE="${oem_use}" emerge-${BOARD} --root="${oem_tmp}" \
|
||||
USE="${oem_use}" emerge-${BOARD} \
|
||||
--nodeps --buildpkgonly --usepkg n \
|
||||
--quiet "${oem_pkg}"
|
||||
|
||||
@ -474,7 +474,8 @@ install_oem_package() {
|
||||
fi
|
||||
|
||||
info "Installing ${oem_pkg} to OEM partition"
|
||||
USE="${oem_use}" emerge-${BOARD} --root="${oem_tmp}" \
|
||||
USE="${oem_use}" emerge-${BOARD} \
|
||||
--root="${oem_tmp}" --sysroot="${oem_tmp}" \
|
||||
--root-deps=rdeps --usepkgonly ${getbinpkg} \
|
||||
--quiet --jobs=2 "${oem_pkg}"
|
||||
sudo rsync -a "${oem_tmp}/usr/share/oem/" "${VM_TMP_ROOT}/usr/share/oem/"
|
||||
|
@ -79,12 +79,25 @@ function torcx_build() (
|
||||
[ -s "${tmproot}/etc/portage/bashrc" ] &&
|
||||
. "${tmproot}/etc/portage/bashrc"
|
||||
|
||||
# Build binary packages using dev files in the board root.
|
||||
emerge-${BOARD} \
|
||||
--buildpkg \
|
||||
--buildpkgonly \
|
||||
--nodeps \
|
||||
--oneshot \
|
||||
--quiet \
|
||||
--root-deps=rdeps \
|
||||
"${pkg}"
|
||||
|
||||
# Install the binary packages in the temporary torcx image root.
|
||||
emerge-${BOARD} \
|
||||
--nodeps \
|
||||
--oneshot \
|
||||
--quiet \
|
||||
--root="${tmproot}" \
|
||||
--root-deps=rdeps \
|
||||
--quiet \
|
||||
--sysroot="${tmproot}" \
|
||||
--usepkgonly \
|
||||
"${pkg}"
|
||||
)
|
||||
|
||||
|
23
setup_board
23
setup_board
@ -305,19 +305,28 @@ if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
|
||||
EMERGE_FLAGS+=" --usepkg"
|
||||
fi
|
||||
EMERGE_FLAGS+=" --getbinpkg"
|
||||
EMERGE_TOOLCHAIN_FLAGS+=" --usepkgonly --getbinpkg --rebuilt-binaries n"
|
||||
else
|
||||
# When binary packages are disabled we need to make sure the cross
|
||||
# sysroot includes any build dependencies for the toolchain.
|
||||
info "Installing toolchain build dependencies"
|
||||
install_cross_libs "${BOARD_CHOST}" ${EMERGE_FLAGS} --buildpkg=n
|
||||
fi
|
||||
|
||||
info "Installing baselayout"
|
||||
"${EMERGE_WRAPPER}" ${EMERGE_FLAGS} --nodeps sys-apps/baselayout
|
||||
|
||||
if [[ "${FLAGS_usepkg}" -ne "${FLAGS_TRUE}" ||
|
||||
"${FLAGS_getbinpkg}" -ne "${FLAGS_TRUE}" ]]
|
||||
then
|
||||
# When binary packages are disabled we need to make sure the cross
|
||||
# sysroot includes any build dependencies for the toolchain.
|
||||
info "Installing toolchain build dependencies"
|
||||
install_cross_libs "${BOARD_CHOST}" ${EMERGE_FLAGS} --buildpkg=n
|
||||
|
||||
info "Building toolchain"
|
||||
"${EMERGE_WRAPPER}" --buildpkg --buildpkgonly \
|
||||
--root="/usr/${BOARD_CHOST}" --sysroot="/usr/${BOARD_CHOST}" \
|
||||
${EMERGE_TOOLCHAIN_FLAGS} "${TOOLCHAIN_PKGS[@]}"
|
||||
fi
|
||||
|
||||
info "Installing toolchain"
|
||||
SYSROOT="/usr/${BOARD_CHOST}" "${EMERGE_WRAPPER}" \
|
||||
"${EMERGE_WRAPPER}" \
|
||||
--usepkgonly --getbinpkg --rebuilt-binaries n \
|
||||
${EMERGE_TOOLCHAIN_FLAGS} "${TOOLCHAIN_PKGS[@]}"
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user