Add a _noccache option to enforce turning off ccache.

In addition, disable `CONFIG_GCC_PLUGINS` when ccache is used as it's disruptive, and tweak ccache sloppiness with safe values.
Those changes combined are giving us near 100% cache hit rate on hot cache.
This commit is contained in:
Tk-Glitch
2020-04-02 15:27:26 +02:00
parent d3eaca62ea
commit 4ce0d0e67f
6 changed files with 27 additions and 3 deletions

View File

@@ -262,6 +262,9 @@ prepare() {
sed -i -e 's/CONFIG_LZ4_COMPRESS=m/CONFIG_LZ4_COMPRESS=y/' ./.config
sed -i -e 's/CONFIG_LZ4HC_COMPRESS=m/CONFIG_LZ4HC_COMPRESS=y/' ./.config
sed -i -e 's/CONFIG_RCU_BOOST_DELAY=500/CONFIG_RCU_BOOST_DELAY=0/' ./.config
if [ "$_noccache" != "true" ] && pacman -Qq ccache &> /dev/null; then
sed -i -e 's/CONFIG_GCC_PLUGINS=y/# CONFIG_GCC_PLUGINS is not set/' ./.config
fi
# Inject cpuopts options
echo "# CONFIG_MK8SSE3 is not set" >> ./.config
@@ -844,8 +847,10 @@ build() {
fi
# ccache
if pacman -Qq ccache &> /dev/null; then
if [ "$_noccache" != "true" ] && pacman -Qq ccache &> /dev/null; then
export PATH="/usr/lib/ccache/bin/:$PATH"
export CCACHE_SLOPPINESS="file_macro,locale,time_macros"
export CCACHE_NOHASHDIR="true"
msg2 'ccache was found and will be used'
fi

View File

@@ -23,6 +23,9 @@ _OPTIPROFILE=""
# Set to true to bypass makepkg.conf and use all available threads for compilation. False will respect your makepkg.conf options.
_force_all_threads="false"
# Set to true to prevent ccache from being used and set CONFIG_GCC_PLUGINS=y (which needs to be disabled for ccache to work properly)
_noccache="false"
# Set to true to use modprobed db to clean config from unneeded modules. Speeds up compilation considerably. Requires root - https://wiki.archlinux.org/index.php/Modprobed-db
# !!!! Make sure to have a well populated db !!!! - Leave empty to be asked about it at build time
_modprobeddb="false"