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_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_LZ4HC_COMPRESS=m/CONFIG_LZ4HC_COMPRESS=y/' ./.config
|
||||||
sed -i -e 's/CONFIG_RCU_BOOST_DELAY=500/CONFIG_RCU_BOOST_DELAY=0/' ./.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
|
# Inject cpuopts options
|
||||||
echo "# CONFIG_MK8SSE3 is not set" >> ./.config
|
echo "# CONFIG_MK8SSE3 is not set" >> ./.config
|
||||||
@ -844,8 +847,10 @@ build() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# ccache
|
# 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 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'
|
msg2 'ccache was found and will be used'
|
||||||
fi
|
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.
|
# 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"
|
_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
|
# 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
|
# !!!! Make sure to have a well populated db !!!! - Leave empty to be asked about it at build time
|
||||||
_modprobeddb="false"
|
_modprobeddb="false"
|
||||||
|
@ -268,6 +268,9 @@ prepare() {
|
|||||||
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
||||||
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
||||||
echo "# CONFIG_CMDLINE_OVERRIDE is not set" >> ./.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
|
if [ "$_font_autoselect" != "false" ]; then
|
||||||
sed -i -e 's/CONFIG_FONT_TER16x32=y/# CONFIG_FONT_TER16x32 is not set\nCONFIG_FONT_AUTOSELECT=y/' ./.config
|
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
|
fi
|
||||||
|
|
||||||
# ccache
|
# 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 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'
|
msg2 'ccache was found and will be used'
|
||||||
fi
|
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.
|
# 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"
|
_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
|
# 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
|
# !!!! Make sure to have a well populated db !!!! - Leave empty to be asked about it at build time
|
||||||
_modprobeddb="false"
|
_modprobeddb="false"
|
||||||
|
@ -274,6 +274,9 @@ prepare() {
|
|||||||
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
|
||||||
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
|
||||||
echo "# CONFIG_CMDLINE_OVERRIDE is not set" >> ./.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
|
if [ "$_font_autoselect" != "false" ]; then
|
||||||
sed -i -e 's/CONFIG_FONT_TER16x32=y/# CONFIG_FONT_TER16x32 is not set\nCONFIG_FONT_AUTOSELECT=y/' ./.config
|
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
|
fi
|
||||||
|
|
||||||
# ccache
|
# 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 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'
|
msg2 'ccache was found and will be used'
|
||||||
fi
|
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.
|
# 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"
|
_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
|
# 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
|
# !!!! Make sure to have a well populated db !!!! - Leave empty to be asked about it at build time
|
||||||
_modprobeddb="false"
|
_modprobeddb="false"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user