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:
parent
d3eaca62ea
commit
4ce0d0e67f
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -268,6 +268,9 @@ prepare() {
|
||||
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
||||
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
||||
echo "# CONFIG_CMDLINE_OVERRIDE is not set" >> ./.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
|
||||
|
||||
if [ "$_font_autoselect" != "false" ]; then
|
||||
sed -i -e 's/CONFIG_FONT_TER16x32=y/# CONFIG_FONT_TER16x32 is not set\nCONFIG_FONT_AUTOSELECT=y/' ./.config
|
||||
@ -896,8 +899,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
|
||||
|
||||
|
@ -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="true"
|
||||
|
||||
# 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"
|
||||
|
@ -274,6 +274,9 @@ prepare() {
|
||||
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
||||
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
||||
echo "# CONFIG_CMDLINE_OVERRIDE is not set" >> ./.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
|
||||
|
||||
if [ "$_font_autoselect" != "false" ]; then
|
||||
sed -i -e 's/CONFIG_FONT_TER16x32=y/# CONFIG_FONT_TER16x32 is not set\nCONFIG_FONT_AUTOSELECT=y/' ./.config
|
||||
@ -902,8 +905,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
|
||||
|
||||
|
@ -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="true"
|
||||
|
||||
# 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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user