mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-22 06:51:26 +02:00
Merge pull request #1437 from marineam/ccache
Fixes to make better use of ccache
This commit is contained in:
commit
fa47b4373f
@ -62,7 +62,7 @@ find_defconfig() {
|
|||||||
# As if using cpio isn't bad enough already.
|
# As if using cpio isn't bad enough already.
|
||||||
# If lib doesn't exist or isn't a symlink then nothing is returned.
|
# If lib doesn't exist or isn't a symlink then nothing is returned.
|
||||||
get_bootengine_lib() {
|
get_bootengine_lib() {
|
||||||
cpio -itv --quiet < bootengine.cpio | \
|
cpio -itv --quiet < build/bootengine.cpio | \
|
||||||
awk '$1 ~ /^l/ && $9 == "lib" { print $11 }'
|
awk '$1 ~ /^l/ && $9 == "lib" { print $11 }'
|
||||||
assert
|
assert
|
||||||
}
|
}
|
||||||
@ -80,7 +80,7 @@ update_bootengine_cpio() {
|
|||||||
# squash file ownership to root for new files.
|
# squash file ownership to root for new files.
|
||||||
--owner=root:root
|
--owner=root:root
|
||||||
# append to our local copy of bootengine
|
# append to our local copy of bootengine
|
||||||
-F "${S}/bootengine.cpio"
|
-F "${S}/build/bootengine.cpio"
|
||||||
)
|
)
|
||||||
|
|
||||||
echo "Updating bootengine.cpio"
|
echo "Updating bootengine.cpio"
|
||||||
@ -93,10 +93,10 @@ kmake() {
|
|||||||
if gcc-specs-pie; then
|
if gcc-specs-pie; then
|
||||||
kernel_cflags="-nopie -fstack-check=no"
|
kernel_cflags="-nopie -fstack-check=no"
|
||||||
fi
|
fi
|
||||||
emake -C "${KERNEL_DIR}" \
|
emake \
|
||||||
ARCH="${kernel_arch}" \
|
ARCH="${kernel_arch}" \
|
||||||
CROSS_COMPILE="${CHOST}-" \
|
CROSS_COMPILE="${CHOST}-" \
|
||||||
KBUILD_OUTPUT="${S}" \
|
KBUILD_OUTPUT="build" \
|
||||||
KCFLAGS="${kernel_cflags}" \
|
KCFLAGS="${kernel_cflags}" \
|
||||||
LDFLAGS="" \
|
LDFLAGS="" \
|
||||||
"$@"
|
"$@"
|
||||||
@ -111,7 +111,8 @@ shred_keys() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
coreos-kernel_src_unpack() {
|
coreos-kernel_src_unpack() {
|
||||||
mkdir "${S}" || die
|
mkdir -p "${S}/build" || die
|
||||||
|
ln -s "${KERNEL_DIR}"/* "${S}/" || die
|
||||||
}
|
}
|
||||||
|
|
||||||
coreos-kernel_src_prepare() {
|
coreos-kernel_src_prepare() {
|
||||||
@ -120,25 +121,26 @@ coreos-kernel_src_prepare() {
|
|||||||
die "Source is not clean! Run make mrproper in ${KERNEL_DIR}"
|
die "Source is not clean! Run make mrproper in ${KERNEL_DIR}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
restore_config .config
|
restore_config build/.config
|
||||||
if [[ ! -f .config ]]; then
|
if [[ ! -f build/.config ]]; then
|
||||||
local config="$(find_defconfig)"
|
local config="$(find_defconfig)"
|
||||||
elog "Building using default config ${config}"
|
elog "Building using default config ${config}"
|
||||||
cp "${config}" .config || die
|
cp "${config}" build/.config || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy the cpio initrd to the output build directory so we can tack it
|
# copy the cpio initrd to the output build directory so we can tack it
|
||||||
# onto the kernel image itself.
|
# onto the kernel image itself.
|
||||||
cp "${ROOT}"/usr/share/bootengine/bootengine.cpio bootengine.cpio || die
|
cp "${ROOT}"/usr/share/bootengine/bootengine.cpio build/bootengine.cpio \
|
||||||
|
|| die "cp bootengine.cpio failed, try emerge-\$BOARD bootengine"
|
||||||
}
|
}
|
||||||
|
|
||||||
coreos-kernel_src_configure() {
|
coreos-kernel_src_configure() {
|
||||||
if ! use audit; then
|
if ! use audit; then
|
||||||
sed -i -e '/^CONFIG_CMDLINE=/s/"$/ audit=0"/' .config || die
|
sed -i -e '/^CONFIG_CMDLINE=/s/"$/ audit=0"/' build/.config || die
|
||||||
fi
|
fi
|
||||||
if ! use selinux; then
|
if ! use selinux; then
|
||||||
sed -i -e '/CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE/d' .config || die
|
sed -i -e '/CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE/d' build/.config || die
|
||||||
echo CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 >> .config || die
|
echo CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 >> build/.config || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use default for any options not explitly set in defconfig
|
# Use default for any options not explitly set in defconfig
|
||||||
@ -197,22 +199,9 @@ coreos-kernel_src_install() {
|
|||||||
dosym "../../../../boot/config-${version}" \
|
dosym "../../../../boot/config-${version}" \
|
||||||
"/usr/lib/modules/${version}/build/.config"
|
"/usr/lib/modules/${version}/build/.config"
|
||||||
|
|
||||||
save_config defconfig
|
save_config build/defconfig
|
||||||
|
|
||||||
shred_keys
|
shred_keys
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO(marineam): remove this function once KBUILD_OUTPUT is removed
|
EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install
|
||||||
# from src/scripts/setup_board
|
|
||||||
coreos-kernel_pkg_postinst() {
|
|
||||||
[[ -n "${KBUILD_OUTPUT}" ]] || return 0
|
|
||||||
# linux-info always expects to be able to find the current .config
|
|
||||||
# so copy it into the build tree if it isn't already there.
|
|
||||||
if ! cmp --quiet "${ROOT}/usr/boot/config" "${KBUILD_OUTPUT}/.config"; then
|
|
||||||
cp "${ROOT}/usr/boot/config" "${KBUILD_OUTPUT}/.config"
|
|
||||||
chown ${PORTAGE_USERNAME:-portage}:${PORTAGE_GRPNAME:-portage} \
|
|
||||||
"${KBUILD_OUTPUT}/.config"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install pkg_postinst
|
|
||||||
|
@ -99,3 +99,10 @@ SYSROOT_WRAPPERS_BIN="/usr/lib/sysroot-wrappers/bin"
|
|||||||
if [[ "$PATH" != *"$SYSROOT_WRAPPERS_BIN"* ]]; then
|
if [[ "$PATH" != *"$SYSROOT_WRAPPERS_BIN"* ]]; then
|
||||||
export PATH="$SYSROOT_WRAPPERS_BIN:$PATH"
|
export PATH="$SYSROOT_WRAPPERS_BIN:$PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Improve the chance that ccache is valid across versions by making all
|
||||||
|
# paths under $S relative to $S, avoiding encoding the package version
|
||||||
|
# contained in the path into __FILE__ expansions and debug info.
|
||||||
|
if [[ -z "${CCACHE_BASEDIR}" ]] && [[ -d "${S}" ]]; then
|
||||||
|
export CCACHE_BASEDIR="${S}"
|
||||||
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user