linux510/511-tkg: Offer futex2 patchset as a toggle option

- Enables CONFIG_EXPERT automatically when futex2 is enabled
- Adds the necessary entries to the config for unattended building (suppress prompts from having CONFIG_EXPERT enabled)
This commit is contained in:
Tk-Glitch 2021-02-18 17:28:55 +01:00
parent 5c0036d74b
commit f3eba51c33
5 changed files with 6550 additions and 3 deletions

View File

@ -53,7 +53,7 @@ else
fi
pkgname=("${pkgbase}" "${pkgbase}-headers")
pkgver="${_basekernel}"."${_sub}"
pkgrel=124
pkgrel=126
pkgdesc='Linux-tkg'
arch=('x86_64') # no i686 in here
url="http://www.kernel.org/"
@ -308,6 +308,7 @@ case $_basever in
0005-glitched-pds.patch
0006-add-acs-overrides_iommu.patch
0007-v5.10-fsync.patch
0007-v5.10-futex2_interface.patch
0008-5.10-bcachefs.patch
0009-glitched-ondemand-bmq.patch
0009-glitched-bmq.patch
@ -336,6 +337,7 @@ case $_basever in
'fca63d15ca4502aebd73e76d7499b243d2c03db71ff5ab0bf5cf268b2e576320'
'19661ec0d39f9663452b34433214c755179894528bf73a42f6ba52ccf572832a'
'b302ba6c5bbe8ed19b20207505d513208fae1e678cf4d8e7ac0b154e5fe3f456'
'47c05c6e7e1280dca137ed2139dac7da0d026a27d5590fd386748d1827288a61'
'c5dd103953b8830640538ba30ff511028bd93310f95e4f5587a6ed5e6414a60d'
'9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177'
'a557b342111849a5f920bbe1c129f3ff1fc1eff62c6bd6685e0972fc88e39911'
@ -368,6 +370,7 @@ case $_basever in
0005-glitched-pds.patch
0006-add-acs-overrides_iommu.patch
0007-v5.11-fsync.patch
0007-v5.11-futex2_interface.patch
#0008-5.11-bcachefs.patch
0009-glitched-ondemand-bmq.patch
0009-glitched-bmq.patch
@ -391,6 +394,7 @@ case $_basever in
'fca63d15ca4502aebd73e76d7499b243d2c03db71ff5ab0bf5cf268b2e576320'
'19661ec0d39f9663452b34433214c755179894528bf73a42f6ba52ccf572832a'
'b302ba6c5bbe8ed19b20207505d513208fae1e678cf4d8e7ac0b154e5fe3f456'
'073e7b8ab48aa9abdb5cedb5c729a2f624275ebdbe1769476231c9e712145496'
'9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177'
'a557b342111849a5f920bbe1c129f3ff1fc1eff62c6bd6685e0972fc88e39911'
'ad3ff525e9e7cd53e0f9a19350c144398dffa943573b9741f4cdb085b05efffe'

View File

@ -121,6 +121,10 @@ _zfsfix=""
# Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305
_fsync=""
# Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback
# https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev
_futex2=""
# Set to "true" to enable the Binder and Ashmem, the kernel modules required to use the android emulator Anbox.
_anbox=""

View File

@ -494,8 +494,89 @@ _tkg_srcprep() {
sed -i -e 's/# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y/' ./.config
sed -i -e 's/CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"/CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lz4"/' ./.config
sed -i -e 's/# CONFIG_CMDLINE_BOOL is not set/CONFIG_CMDLINE_BOOL=y/' ./.config
if [ "$_config_expert" = "true" ]; then
if [ "$_futex2" = "true" ] || [ "$_config_expert" = "true" ]; then
sed -i -e 's/# CONFIG_EXPERT is not set/CONFIG_EXPERT=y/' ./.config
echo -e "# CONFIG_DEBUG_RSEQ is not set\n
# CONFIG_PC104 is not set\n
# CONFIG_SLUB_MEMCG_SYSFS_ON is not set\n
# CONFIG_SLOB is not set\n
# CONFIG_PROCESSOR_SELECT is not set\n
# CONFIG_SUSPEND_SKIP_SYNC is not set\n
# CONFIG_DPM_WATCHDOG is not set\n
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set\n
# CONFIG_PCI_CNB20LE_QUIRK is not set\n
# CONFIG_ISA_BUS is not set\n
CONFIG_KVM_WERROR=y\n
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set\n
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set\n
# CONFIG_PCIE_BUS_TUNE_OFF is not set\n
CONFIG_PCIE_BUS_DEFAULT=y\n
# CONFIG_PCIE_BUS_SAFE is not set\n
# CONFIG_PCIE_BUS_PERFORMANCE is not set\n
# CONFIG_PCIE_BUS_PEER2PEER is not set\n
# CONFIG_PATA_PLATFORM is not set\n
# CONFIG_TTY_PRINTK is not set\n
# CONFIG_GPIO_SYSFS is not set\n
# CONFIG_VIDEO_TDA1997X is not set\n
# CONFIG_VIDEO_TLV320AIC23B is not set\n
# CONFIG_VIDEO_ADV7180 is not set\n
# CONFIG_VIDEO_ADV7183 is not set\n
# CONFIG_VIDEO_ADV7604 is not set\n
# CONFIG_VIDEO_ADV7842 is not set\n
# CONFIG_VIDEO_BT819 is not set\n
# CONFIG_VIDEO_BT856 is not set\n
# CONFIG_VIDEO_BT866 is not set\n
# CONFIG_VIDEO_KS0127 is not set\n
# CONFIG_VIDEO_ML86V7667 is not set\n
# CONFIG_VIDEO_SAA7110 is not set\n
# CONFIG_VIDEO_TC358743 is not set\n
# CONFIG_VIDEO_TVP514X is not set\n
# CONFIG_VIDEO_TVP7002 is not set\n
# CONFIG_VIDEO_TW9910 is not set\n
# CONFIG_VIDEO_VPX3220 is not set\n
# CONFIG_VIDEO_SAA7185 is not set\n
# CONFIG_VIDEO_ADV7170 is not set\n
# CONFIG_VIDEO_ADV7175 is not set\n
# CONFIG_VIDEO_ADV7343 is not set\n
# CONFIG_VIDEO_ADV7393 is not set\n
# CONFIG_VIDEO_ADV7511 is not set\n
# CONFIG_VIDEO_AD9389B is not set\n
# CONFIG_VIDEO_AK881X is not set\n
# CONFIG_VIDEO_THS8200 is not set\n
# CONFIG_VIDEO_THS7303 is not set\n
# CONFIG_VIDEO_I2C is not set\n
# CONFIG_VIDEO_ST_MIPID02 is not set\n
# CONFIG_VIDEO_GS1662 is not set\n
# CONFIG_MEDIA_TUNER_MSI001 is not set\n
# CONFIG_DVB_S5H1432 is not set\n
# CONFIG_DVB_DIB9000 is not set\n
# CONFIG_DVB_CXD2880 is not set\n
# CONFIG_DVB_MN88443X is not set\n
# CONFIG_DVB_LNBH29 is not set\n
# CONFIG_DVB_LGS8GL5 is not set\n
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set\n
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set\n
# CONFIG_DRM_I915_WERROR is not set\n
# CONFIG_DRM_I915_DEBUG is not set\n
# CONFIG_DRM_I915_DEBUG_MMIO is not set\n
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set\n
# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set\n
# CONFIG_DRM_I915_DEBUG_GUC is not set\n
# CONFIG_DRM_I915_SELFTEST is not set\n
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set\n
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set\n
# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set\n
# CONFIG_FB_INTEL is not set\n
# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set\n
# CONFIG_USB_KBD is not set\n
# CONFIG_USB_MOUSE is not set\n
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set\n
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set\n
CONFIG_PAHOLE_HAS_SPLIT_BTF=y\n
CONFIG_DEBUG_INFO_BTF_MODULES=y\n
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set\n
# CONFIG_WIRELESS_WDS is not set\n
# CONFIG_UNWINDER_GUESS is not set" >> ./.config
fi
echo "CONFIG_CMDLINE=\"${_custom_commandline}\"" >> ./.config
echo "# CONFIG_CMDLINE_OVERRIDE is not set" >> ./.config
@ -1006,6 +1087,21 @@ _tkg_srcprep() {
tkgpatch="$srcdir/0007-v${_basekernel}-fsync.patch" && _tkg_patcher
fi
# futex2 support
if [ -z "$_futex2" ]; then
plain ""
plain "Enable support for futex2, an experimental replacement for esync and fsync in Valve Proton 5.13 experimental"
plain "Can be enabled alongside regular fsync patchset to have a fallback option"
plain "https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev"
plain "https://github.com/ValveSoftware/Proton/issues/4568"
read -rp "`echo $' > N/y : '`" CONDITION10;
fi
if [[ "$CONDITION10" =~ [yY] ]] || [ "$_futex2" = "true" ]; then
msg2 "Patching futex2 support"
tkgpatch="$srcdir/0007-v${_basekernel}-futex2_interface.patch" && _tkg_patcher
echo "CONFIG_FUTEX2=y" >> ./.config
fi
# ZFS fix
if [ "$_basever" = "54" ] || [ "$_basever" = "57" ] || [ "$_basever" = "58" ]; then
if [ -z "$_zfsfix" ]; then
@ -1082,7 +1178,7 @@ _tkg_srcprep() {
read -rp "`echo $' > N/y : '`" CONDITIONMPDB;
fi
if [[ "$CONDITIONMPDB" =~ [yY] ]] || [ "$_modprobeddb" = "true" ]; then
if [ "$_config_expert" = "true" ];then
if [ "$_futex2" = "true" ] || [ "$_config_expert" = "true" ];then
make LSMOD=${HOME}/.config/modprobed.db localmodconfig ${llvm_opt}
else
yes "" | make LSMOD=${HOME}/.config/modprobed.db localmodconfig ${llvm_opt}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff