diff options
author | ptr1337 | 2021-08-01 14:48:25 +0200 |
---|---|---|
committer | ptr1337 | 2021-08-01 14:48:25 +0200 |
commit | 02d7fcc3c68fd8d042f3694a74f226ebd0a93be2 (patch) | |
tree | 258398ccb8bd4bebd7df3198280c25e0bd99c69a | |
parent | 311bf1f2d6e4a6cfa3b6ee164e69f2a0a9a859e2 (diff) | |
download | aur-02d7fcc3c68fd8d042f3694a74f226ebd0a93be2.tar.gz |
first push
-rw-r--r-- | .SRCINFO | 100 | ||||
-rw-r--r-- | PKGBUILD | 956 |
2 files changed, 540 insertions, 516 deletions
@@ -1,29 +1,34 @@ -pkgbase = linux-cacule-rdb-autogroup-lto - pkgdesc = Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets +pkgbase = linux-cacule-rdb-llvm + pkgdesc = Linux Kernel with cacule scheduler and lto compiled pkgver = 5.13.7 pkgrel = 2 - url = https://github.com/hamadmarri/cacule-cpu-scheduler + url = https://kernel.org/ arch = x86_64 arch = x86_64_v3 license = GPL2 - makedepends = kmod makedepends = bc + makedepends = kmod makedepends = libelf - makedepends = python-sphinx - makedepends = python-sphinx_rtd_theme - makedepends = graphviz - makedepends = imagemagick makedepends = pahole makedepends = cpio makedepends = perl makedepends = tar makedepends = xz + makedepends = xmlto + makedepends = python-sphinx + makedepends = python-sphinx_rtd_theme + makedepends = graphviz + makedepends = imagemagick + makedepends = git + makedepends = llvm + makedepends = clang + makedepends = lld options = !strip - source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.tar.xz - source = https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.13.7.xz + source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.7.tar.xz source = config - source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/arch-patches/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE/v5.13/cacule-5.13-rdb-autogroup.patch + source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/arch-patches-v2/0001-arch-patches.patch + source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE/v5.13/cacule-5.13.patch + source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE/v5.13/rdb-5.13.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/cpu-patches/0001-cpu-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/futex-patches/0001-futex-resync-from-gitlab.collabora.com.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/futex2/0007-v5.13-futex2_interface.patch @@ -37,53 +42,54 @@ pkgbase = linux-cacule-rdb-autogroup-lto source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/btrfs-patches-v2/0001-btrfs-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/pf-patches-v9/0001-pf-patches.patch - source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/lru-patches-v2/0001-lru-patches.patch - source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/ntfs3-patches/0001-ntfs3-patches.patch + source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/lru-patches-v5/0001-lru-patches.patch + source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/ntfs3-patches-v2/0001-ntfs3-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/lrng-patches/0001-lrng-patches-v2.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/security-patches/0001-security-patches.patch - source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/misc/nohzfull.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/alsa-patches/0001-alsa-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/zstd-upstream-patches/0001-zstd-upstream-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/clearlinux-patches-v2/0001-clearlinux-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/v4l2loopback-patches/0001-v4l2loopback-patches.patch - md5sums = 76c60fb304510a7bbd9c838790bc5fe4 - md5sums = aebc49e4d58bd8314548a364bec99d1e - md5sums = c50a188eeb6b247d938ef67d261c2748 - md5sums = 9bb46b8ce45259c238c5233b8394d70b - md5sums = 9a21e2d2754f31c0a9c2215712025b14 - md5sums = 7640a753a7803248543675a6edc75e08 - md5sums = 85f4be6562ee033b83814353a12b61bd - md5sums = 2c0375b3cc9690a0f0f3d3e49df54d10 - md5sums = 9573b92353399343db8a691c9b208300 - md5sums = 1217799f33d6ba822152a0e2fb6f2e34 - md5sums = 31c897f53b91f98532321cd24928c0d7 - md5sums = daeacee8fcde31908f90b89dc4b54126 - md5sums = 4f9e72e7edb909da5cd650afe13aadb6 - md5sums = 9bbbd88f0303ccd59064648eaaf80edd - md5sums = 1bd37d8e71b2a7aae8ebd2853a08f445 - md5sums = 65a4399a10b2abd0f327145d479db12d - md5sums = 81f27f12e20971c7d7fc3a53ffb6842c - md5sums = f9b3c2263204ebfae89f29b83278b54b - md5sums = 9c0260e17db69e024a4838c4617c9f10 - md5sums = 86825a0c5716a1d9c6a39f9d3886b1bf - md5sums = 2b2be59407dd342f1cea80602a93b6c0 - md5sums = 9977ba0e159416108217a45438ebebb4 - md5sums = c68e4fd9b4a55ee730a34bb39ae325ad - md5sums = 92e9db1a7777666a1e6353b4760f1275 - md5sums = 9e5114dba6da65e8d444aa225b109a21 - md5sums = 7dd37a74d7926f4c5ae3b3f76d7172a2 - md5sums = ef7748efcae55f7db8961227cbae3677 + sha256sums = f91e561053afe454afce8a6dcc7f8319010bfe2fa17aeea1d8566f61760be439 + sha256sums = 4d46148d5e076722537220c854147dc102fc994eeb7ab2d77363dc3873a011be + sha256sums = 2578b367f30ddf43569280403c75c056d61883128ea7827356b681fa7970bed4 + sha256sums = 4edb5cd8504d4985de2a1c2ac18aff663366061da5b094df294a8ac9bf26bb55 + sha256sums = 0469f4bd12082c1972aff782a35b3ad26a4b5552f3a68dc663ef0597c5034fbe + sha256sums = 476c99cb010eb536ebf8b68044cd7f2a581c74e4d5c5e71e0983541f727bafde + sha256sums = a65035f7b751ea792989784083d5063293d1a0979bcf4c428b4ba94aeac17809 + sha256sums = 9ec679871cba674cf876ba836cde969296ae5034bcc10e1ec39b372e6e07aab0 + sha256sums = 034d12a73b507133da2c69a34d61efd2f6b6618549650aa26d748142d22002e1 + sha256sums = f39ce0a6a967e4c83f665288479c3236b211bbbb4ee508d6fbefee2904a4e80c + sha256sums = 933cf04b6705e9564435163a514082f249b2a8e81e88f08fb3ce68bfe8ffcec7 + sha256sums = c5501f058a8accf538fdb9cc541bd08419cd4d597e2c5bc31365d70c68bba5b3 + sha256sums = 0735544a91293d9c192b7f9283541fe62ea5517c11e4b421b502ab76c064bd62 + sha256sums = 320e67ab827abb506481b9053fae85e494195e5d0ee3b61948999965856b425c + sha256sums = 744a615a9099df44bb9c181f1d140a099fe11136c8dbb0b26e4af045460298a6 + sha256sums = aa5cbec74dc27591d47616c6c0748475ab55b5efdcbc9d81c2cc49b9b0bf2c00 + sha256sums = 7289f4ce29d653a0ca511410b66bd3cb42fbcc54f5e097c85e528d4e27ce41ff + sha256sums = d2ba0ec7f76e267417f72abbf3ef35ce232d1e83c7ff33971bf8ccabb9739604 + sha256sums = e33908a2aca1b5b52609075c32c714e4c3f6b52c054da2b2982a86f6f3c4b87a + sha256sums = e5818fcaa55ed416b08900db04f18ae6d29b89d19e0b2fb3feb410efd8099b32 + sha256sums = 0c1e42b6c197e5e5c8a0c5f4047037289063e064f6b841f05028c62b5449864b + sha256sums = d562264ae4492ec07c55690cac0ee95703beed453330ab7a147e60c25b52e20f + sha256sums = 8e56f88209ec69bf7004c52a7f31ba5fffa2c6af3db306e7ec385210a0b5944e + sha256sums = 78b07f9d39573633ac7035201d7a95c44675084562995b7e60e549e44fbcfcb7 + sha256sums = 04205c627cd3dcb737bd7b432cd7172d30f4ca0114b003bc3ac0dc8dadfa3c01 + sha256sums = 586d03baec3f8b583b1b73e838f5e69c1d25c502e4d7e6738e1291de1b52af15 -pkgname = linux-cacule-rdb-autogroup-lto - pkgdesc = The Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets kernel and modules +pkgname = linux-cacule-rdb-llvm + pkgdesc = The Linux Kernel with cacule scheduler and lto compiled and modules depends = coreutils depends = kmod depends = initramfs optdepends = crda: to set the correct wireless channels of your country optdepends = linux-firmware: firmware images needed for some devices - optdepends = modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig provides = VIRTUALBOX-GUEST-MODULES provides = WIREGUARD-MODULE + replaces = virtualbox-guest-modules-arch + replaces = wireguard-arch -pkgname = linux-cacule-rdb-autogroup-lto-headers - pkgdesc = Headers and scripts for building modules for the Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets kernel +pkgname = linux-cacule-rdb-llvm-headers + pkgdesc = Headers and scripts for building modules for the Linux Kernel with cacule scheduler and lto compiled + depends = linux-cacule-rdb-llvm=5.13.7 + depends = pahole @@ -28,7 +28,7 @@ _mm_protect=y ### Enable multigenerational LRU _lru_enable=y ### Enable Linux Random Number Generator -_lrng_enable=y +_lrng_enable= ### Enable SECURITY_FORK_BRUTE # WARNING Not recommended. # An experimental solution, still in testing phase. @@ -57,55 +57,53 @@ _use_current= ### IMPORTANT: Do no edit below this line unless you know what you're doing -_major=5.13 -_minor=7 -_srcname=linux-${_major} -pkgbase=linux-cacule-rdb-autogroup-lto -pkgver=${_major}.${_minor} -#pkgver=${_major} +pkgbase=linux-cacule-rdb-llvm +pkgname=("${pkgbase}" "${pkgbase}-headers") +pkgver=5.13.7 pkgrel=2 -pkgdesc='Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets' -arch=('x86_64' 'x86_64_v3') -url="https://github.com/hamadmarri/cacule-cpu-scheduler" -license=('GPL2') -makedepends=('kmod' 'bc' 'libelf' 'python-sphinx' 'python-sphinx_rtd_theme' - 'graphviz' 'imagemagick' 'pahole' 'cpio' 'perl' 'tar' 'xz') -options=('!strip') +arch=(x86_64 x86_64_v3) +pkgdesc='Linux Kernel with cacule scheduler and lto compiled' +_gittag=v${pkgver%.*}-${pkgver##*.} +url="https://kernel.org/" +license=(GPL2) +makedepends=( + bc kmod libelf pahole cpio perl tar xz + xmlto python-sphinx python-sphinx_rtd_theme + graphviz imagemagick git llvm clang lld +) _patchsource="https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13" _caculepatches="https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE" source=( - "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_major}.tar.xz" - "https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz" - "config" - "${_patchsource}/arch-patches/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch" - "${_caculepatches}/v5.13/cacule-5.13-rdb-autogroup.patch" - "${_patchsource}/cpu-patches/0001-cpu-patches.patch" - "${_patchsource}/futex-patches/0001-futex-resync-from-gitlab.collabora.com.patch" - "${_patchsource}/futex2/0007-v5.13-futex2_interface.patch" - "${_patchsource}/winesync/5.13-winesync.patch" - "${_patchsource}/zen-patches/0001-zen-patches.patch" - "${_patchsource}/lqx-patches-v3/0001-lqx-patches.patch" - "${_patchsource}/bfq-patches-v3/0001-bfq-patches.patch" - "${_patchsource}/block-patches-v2/0001-block-patches.patch" - "${_patchsource}/fixes-miscellaneous/0001-fixes-miscellaneous.patch" - "${_patchsource}/bbr2-patches-v2/0001-bbr2-patches.patch" - "${_patchsource}/btrfs-patches-v2/0001-btrfs-patches.patch" - "${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch" - "${_patchsource}/pf-patches-v9/0001-pf-patches.patch" - "${_patchsource}/lru-patches-v2/0001-lru-patches.patch" -# "${_patchsource}/lru-patches/lru_5.13.patch" -# "${_patchsource}/lru-patches/le9db_patches/le9db1-5.10.patch" - "${_patchsource}/ntfs3-patches/0001-ntfs3-patches.patch" -# "${_patchsource}/security-2/hardened-patches.patch" - "${_patchsource}/lrng-patches/0001-lrng-patches-v2.patch" - "${_patchsource}/security-patches/0001-security-patches.patch" - "${_patchsource}/misc/nohzfull.patch" - "${_patchsource}/alsa-patches/0001-alsa-patches.patch" - "${_patchsource}/zstd-upstream-patches/0001-zstd-upstream-patches.patch" - "${_patchsource}/clearlinux-patches-v2/0001-clearlinux-patches.patch" -# "${_patchsource}/ksm-patches/0001-ksm-patches.patch" - "${_patchsource}/v4l2loopback-patches/0001-v4l2loopback-patches.patch" + "https://cdn.kernel.org/pub/linux/kernel/v${pkgver:0:1}.x/linux-${pkgver}.tar.xz" + 'config' # kernel config file + #'0002-x86-fpu-2021-07-07.patch' +# '0003-clang.patch' +"${_patchsource}/arch-patches-v2/0001-arch-patches.patch" +"${_caculepatches}/v5.13/cacule-5.13.patch" +"${_caculepatches}/v5.13/rdb-5.13.patch" +"${_patchsource}/cpu-patches/0001-cpu-patches.patch" +"${_patchsource}/futex-patches/0001-futex-resync-from-gitlab.collabora.com.patch" +"${_patchsource}/futex2/0007-v5.13-futex2_interface.patch" +"${_patchsource}/winesync/5.13-winesync.patch" +"${_patchsource}/zen-patches/0001-zen-patches.patch" +"${_patchsource}/lqx-patches-v3/0001-lqx-patches.patch" +"${_patchsource}/bfq-patches-v3/0001-bfq-patches.patch" +"${_patchsource}/block-patches-v2/0001-block-patches.patch" +"${_patchsource}/fixes-miscellaneous/0001-fixes-miscellaneous.patch" +"${_patchsource}/bbr2-patches-v2/0001-bbr2-patches.patch" +"${_patchsource}/btrfs-patches-v2/0001-btrfs-patches.patch" +"${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch" +"${_patchsource}/pf-patches-v9/0001-pf-patches.patch" +"${_patchsource}/lru-patches-v5/0001-lru-patches.patch" +"${_patchsource}/ntfs3-patches-v2/0001-ntfs3-patches.patch" +"${_patchsource}/lrng-patches/0001-lrng-patches-v2.patch" +"${_patchsource}/security-patches/0001-security-patches.patch" +"${_patchsource}/alsa-patches/0001-alsa-patches.patch" +"${_patchsource}/zstd-upstream-patches/0001-zstd-upstream-patches.patch" +"${_patchsource}/clearlinux-patches-v2/0001-clearlinux-patches.patch" +"${_patchsource}/v4l2loopback-patches/0001-v4l2loopback-patches.patch" ) + BUILD_FLAGS=( LLVM=1 LLVM_IAS=1 @@ -123,462 +121,482 @@ BUILD_FLAGS=( OBJCOPY=llvm-objcopy OBJDUMP=objdump ) +sha256sums=('f91e561053afe454afce8a6dcc7f8319010bfe2fa17aeea1d8566f61760be439' + '4d46148d5e076722537220c854147dc102fc994eeb7ab2d77363dc3873a011be' + '2578b367f30ddf43569280403c75c056d61883128ea7827356b681fa7970bed4' + '4edb5cd8504d4985de2a1c2ac18aff663366061da5b094df294a8ac9bf26bb55' + '0469f4bd12082c1972aff782a35b3ad26a4b5552f3a68dc663ef0597c5034fbe' + '476c99cb010eb536ebf8b68044cd7f2a581c74e4d5c5e71e0983541f727bafde' + 'a65035f7b751ea792989784083d5063293d1a0979bcf4c428b4ba94aeac17809' + '9ec679871cba674cf876ba836cde969296ae5034bcc10e1ec39b372e6e07aab0' + '034d12a73b507133da2c69a34d61efd2f6b6618549650aa26d748142d22002e1' + 'f39ce0a6a967e4c83f665288479c3236b211bbbb4ee508d6fbefee2904a4e80c' + '933cf04b6705e9564435163a514082f249b2a8e81e88f08fb3ce68bfe8ffcec7' + 'c5501f058a8accf538fdb9cc541bd08419cd4d597e2c5bc31365d70c68bba5b3' + '0735544a91293d9c192b7f9283541fe62ea5517c11e4b421b502ab76c064bd62' + '320e67ab827abb506481b9053fae85e494195e5d0ee3b61948999965856b425c' + '744a615a9099df44bb9c181f1d140a099fe11136c8dbb0b26e4af045460298a6' + 'aa5cbec74dc27591d47616c6c0748475ab55b5efdcbc9d81c2cc49b9b0bf2c00' + '7289f4ce29d653a0ca511410b66bd3cb42fbcc54f5e097c85e528d4e27ce41ff' + 'd2ba0ec7f76e267417f72abbf3ef35ce232d1e83c7ff33971bf8ccabb9739604' + 'e33908a2aca1b5b52609075c32c714e4c3f6b52c054da2b2982a86f6f3c4b87a' + 'e5818fcaa55ed416b08900db04f18ae6d29b89d19e0b2fb3feb410efd8099b32' + '0c1e42b6c197e5e5c8a0c5f4047037289063e064f6b841f05028c62b5449864b' + 'd562264ae4492ec07c55690cac0ee95703beed453330ab7a147e60c25b52e20f' + '8e56f88209ec69bf7004c52a7f31ba5fffa2c6af3db306e7ec385210a0b5944e' + '78b07f9d39573633ac7035201d7a95c44675084562995b7e60e549e44fbcfcb7' + '04205c627cd3dcb737bd7b432cd7172d30f4ca0114b003bc3ac0dc8dadfa3c01' + '586d03baec3f8b583b1b73e838f5e69c1d25c502e4d7e6738e1291de1b52af15') +options=('!strip') + export KBUILD_BUILD_HOST=archlinux -export KBUILD_BUILD_USER=$pkgbase +export KBUILD_BUILD_USER="${pkgbase}" export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" prepare() { - cd ${_srcname} - - ### Add upstream patches - echo "Add upstream patches" - patch -Np1 -i ../patch-${pkgver} - - ### Setting version - echo "Setting version..." - scripts/setlocalversion --save-scmversion - echo "-$pkgrel" > localversion.10-pkgrel - echo "${pkgbase#linux}" > localversion.20-pkgname - - local src - for src in "${source[@]}"; do - src="${src%%::*}" - src="${src##*/}" - [[ $src = *.patch ]] || continue - echo "Applying patch $src..." - patch -Np1 < "../$src" - done - - ### Setting config - echo "Setting config..." - cp "${srcdir}"/config .config - make olddefconfig - ### CPU_ARCH SCRIPT ## - source "${startdir}"/configure - cpu_arch - ### Optionally set tickrate to 2000HZ - if [ -n "$_2k_HZ_ticks" ]; then - echo "Setting tick rate to 2k..." - scripts/config --disable CONFIG_HZ_300 - scripts/config --enable CONFIG_HZ_2000 - scripts/config --set-val CONFIG_HZ 2000 - fi + cd "${srcdir:?}/linux-${pkgver}" || ( + echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Prepare failed! \E[0m" + exit 1 + ) - ### Optionally set tickrate to 1000 - if [ -n "$_1k_HZ_ticks" ]; then - echo "Setting tick rate to 1k..." - scripts/config --disable CONFIG_HZ_300 - scripts/config --enable CONFIG_HZ_1000 - scripts/config --set-val CONFIG_HZ 1000 - fi - - ### Optionally set tickrate to 500HZ - if [ -n "$_500_HZ_ticks" ]; then - echo "Setting tick rate to 500HZ..." - scripts/config --disable CONFIG_HZ_300 - scripts/config --enable CONFIG_HZ_500 - scripts/config --set-val CONFIG_HZ 500 - fi + ### Setting version + echo "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "${pkgbase#linux}" > localversion.20-pkgname - ### Optionally disable NUMA for 64-bit kernels only - # (x86 kernels do not support NUMA) - if [ -n "$_NUMAdisable" ]; then - echo "Disabling NUMA from kernel config..." - scripts/config --disable CONFIG_NUMA - fi + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo "Applying patch $src..." + patch -Np1 < "../$src" + done - if [ -n "$_fsync" ]; then - echo "Enable Fsync support" - scripts/config --enable CONFIG_FUTEX - scripts/config --enable CONFIG_FUTEX_PI - fi - if [ -n "$_futex2" ]; then - echo "Enable Futex2 support" - scripts/config --enable CONFIG_FUTEX2 - fi + echo "Setting config..." + cp ../config .config - if [ -n "$_winesync" ]; then - echo "Enable winesync support" - scripts/config --module CONFIG_WINESYNC - fi + make ${BUILD_FLAGS[*]} olddefconfig - ### Set performance governor - if [ -n "$_per_gov" ]; then - echo "Setting performance governor..." - scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL - scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE - echo "Disabling uneeded governors..." - scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND - scripts/config --disable CONFIG_CPU_FREQ_GOV_CONSERVATIVE - scripts/config --disable CONFIG_CPU_FREQ_GOV_USERSPACE - scripts/config --disable CONFIG_CPU_FREQ_GOV_SCHEDUTIL + ### CPU_ARCH SCRIPT ## + source "${startdir}"/configure + + cpu_arch + ### Optionally set tickrate to 2000HZ + if [ -n "$_2k_HZ_ticks" ]; then + echo "Setting tick rate to 2k..." + scripts/config --disable CONFIG_HZ_300 + scripts/config --enable CONFIG_HZ_2000 + scripts/config --set-val CONFIG_HZ 2000 + fi + + ### Optionally set tickrate to 1000 + if [ -n "$_1k_HZ_ticks" ]; then + echo "Setting tick rate to 1k..." + scripts/config --disable CONFIG_HZ_300 + scripts/config --enable CONFIG_HZ_1000 + scripts/config --set-val CONFIG_HZ 1000 + fi + + ### Optionally set tickrate to 500HZ + if [ -n "$_500_HZ_ticks" ]; then + echo "Setting tick rate to 500HZ..." + scripts/config --disable CONFIG_HZ_300 + scripts/config --enable CONFIG_HZ_500 + scripts/config --set-val CONFIG_HZ 500 + fi + + ### Optionally disable NUMA for 64-bit kernels only + # (x86 kernels do not support NUMA) + if [ -n "$_NUMAdisable" ]; then + echo "Disabling NUMA from kernel config..." + scripts/config --disable CONFIG_NUMA + fi + + if [ -n "$_fsync" ]; then + echo "Enable Fsync support" + scripts/config --enable CONFIG_FUTEX + scripts/config --enable CONFIG_FUTEX_PI + fi + + if [ -n "$_futex2" ]; then + echo "Enable Futex2 support" + scripts/config --enable CONFIG_FUTEX2 + fi + + if [ -n "$_winesync" ]; then + echo "Enable winesync support" + scripts/config --module CONFIG_WINESYNC + fi + + ### Set performance governor + if [ -n "$_per_gov" ]; then + echo "Setting performance governor..." + scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL + scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE + echo "Disabling uneeded governors..." + scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND + scripts/config --disable CONFIG_CPU_FREQ_GOV_CONSERVATIVE + scripts/config --disable CONFIG_CPU_FREQ_GOV_USERSPACE + scripts/config --disable CONFIG_CPU_FREQ_GOV_SCHEDUTIL + fi + + ### Disable Deadline I/O scheduler + if [ -n "$_deadline_disable" ]; then + echo "Disabling Deadline I/O scheduler..." + scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE + fi + + ### Disable Kyber I/O scheduler + if [ -n "$_kyber_disable" ]; then + echo "Disabling Kyber I/O scheduler..." + scripts/config --disable CONFIG_MQ_IOSCHED_KYBER fi - ### Disable Deadline I/O scheduler - if [ -n "$_deadline_disable" ]; then - echo "Disabling Deadline I/O scheduler..." - scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE - fi - - ### Disable Kyber I/O scheduler - if [ -n "$_kyber_disable" ]; then - echo "Disabling Kyber I/O scheduler..." - scripts/config --disable CONFIG_MQ_IOSCHED_KYBER - fi - - - ### Enable protect file mappings under memory pressure - if [ -n "$_mm_protect" ]; then - echo "Enabling protect file mappings under memory pressure..." - scripts/config --enable CONFIG_UNEVICTABLE_FILE - scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144 - scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072 - scripts/config --enable CONFIG_UNEVICTABLE_ANON - scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536 - scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768 - fi - - ### Enable multigenerational LRU - if [ -n "$_lru_enable" ]; then - echo "Enabling multigenerational LRU..." - scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG - scripts/config --enable CONFIG_LRU_GEN - scripts/config --set-val CONFIG_NR_LRU_GENS 7 - scripts/config --set-val CONFIG_TIERS_PER_GEN 4 - scripts/config --enable CONFIG_LRU_GEN_ENABLED - scripts/config --disable CONFIG_LRU_GEN_STATS - fi - - ### Enabling ZSTD COMPRESSION ## - echo "Set module compression to ZSTD" - scripts/config --enable CONFIG_MODULE_COMPRESS - scripts/config --disable CONFIG_MODULE_COMPRESS_XZ - scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD - scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 - scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA - - - ### Enable Linux Random Number Generator - if [ -n "$_lrng_enable" ]; then - echo "Enabling Linux Random Number Generator ..." - scripts/config --enable CONFIG_LRNG - scripts/config --disable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES - scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED - scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED - scripts/config --disable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION - scripts/config --enable CONFIG_LRNG_COLLECTION_SIZE_1024 - scripts/config --disable CONFIG_LRNG_HEALTH_TESTS - scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256 - scripts/config --disable CONFIG_LRNG_JENT - scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16 - scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 - scripts/config --disable CONFIG_LRNG_DRNG_SWITCH - scripts/config --disable CONFIG_LRNG_DRBG - scripts/config --disable CONFIG_LRNG_TESTING_MENU - scripts/config --disable CONFIG_LRNG_SELFTEST + + ### Enable protect file mappings under memory pressure + if [ -n "$_mm_protect" ]; then + echo "Enabling protect file mappings under memory pressure..." + scripts/config --enable CONFIG_UNEVICTABLE_FILE + scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144 + scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072 + scripts/config --enable CONFIG_UNEVICTABLE_ANON + scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536 + scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768 fi - ### Enable SECURITY_FORK_BRUTE - if [ -n "$_fork_brute" ]; then - echo "Enabling SECURITY_FORK_BRUTE..." - scripts/config --enable CONFIG_SECURITY_FORK_BRUTE - scripts/config --set-str CONFIG_LSM lockdown,yama,brute + ### Enable multigenerational LRU + if [ -n "$_lru_enable" ]; then + echo "Enabling multigenerational LRU..." + scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG + scripts/config --enable CONFIG_LRU_GEN + scripts/config --set-val CONFIG_NR_LRU_GENS 7 + scripts/config --set-val CONFIG_TIERS_PER_GEN 4 + scripts/config --enable CONFIG_LRU_GEN_ENABLED + scripts/config --disable CONFIG_LRU_GEN_STATS fi - ### Enabling Cacule-Config ## - echo "Enable CacULE CPU scheduler..." - scripts/config --enable CONFIG_CACULE_SCHED - scripts/config --enable CONFIG_CACULE_RDB - scripts/config --set-val CONFIG_RDB_INTERVAL 19 - scripts/config --disable CONFIG_RDB_TASKS_GROUP - scripts/config --enable CONFIG_FAIR_GROUP_SCHED - scripts/config --enable CONFIG_SCHED_AUTOGROUP - scripts/config --disable CONFIG_EXPERT - scripts/config --disable CONFIG_SCHED_DEBUG - scripts/config --disable CONFIG_SCHED_INFO - scripts/config --disable CONFIG_SCHEDSTATS - scripts/config --disable CONFIG_DEBUG_KERNEL - # scripts/config --disable CONFIG_RT_GROUP_SCHED - echo "Enabling Full Tickless" - scripts/config --disable CONFIG_HZ_PERIODIC - scripts/config --disable CONFIG_NO_HZ_IDLE - scripts/config --disable CONFIG_NO_HZ_FULL - scripts/config --enable CONFIG_NO_HZ - scripts/config --enable CONFIG_NO_HZ_COMMON - scripts/config --enable CONFIG_CONTEXT_TRACKING - scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE - echo "Enabling KBUILD_CFLAGS -O3..." - scripts/config --disable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE - scripts/config --enable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 - echo "Enable PREEMPT" - scripts/config --disable CONFIG_PREEMPT_NONE - scripts/config --disable CONFIG_PREEMPT_VOLUNTARY - scripts/config --enable CONFIG_PREEMPT - scripts/config --enable CONFIG_PREEMPT_COUNT - scripts/config --enable CONFIG_PREEMPTION - scripts/config --enable CONFIG_PREEMPT_DYNAMIC - echo "Enable NTFS3" - scripts/config --module CONFIG_NTFS_FS - scripts/config --enable CONFIG_NTFS_RW - scripts/config --enable CONFIG_NTFS_DEBUG - scripts/config --module CONFIG_NTFS3_FS - scripts/config --enable CONFIG_NTFS3_64BIT_CLUSTER - scripts/config --enable CONFIG_NTFS3_LZX_XPRESS - scripts/config --enable CONFIG_NTFS3_FS_POSIX_ACL - echo "Enable Anbox" - scripts/config --module CONFIG_ASHMEM - scripts/config --enable CONFIG_ANDROID_BINDER_IPC_SELFTEST - scripts/config --enable CONFIG_ANDROID - scripts/config --enable CONFIG_ANDROID_BINDER_IPC - scripts/config --enable CONFIG_ANDROID_BINDERFS - scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES binder,hwbinder,vndbinder - echo "Disabling TCP_CONG_CUBIC..." - scripts/config --module CONFIG_TCP_CONG_CUBIC - scripts/config --disable CONFIG_DEFAULT_CUBIC - echo "Enabling TCP_CONG_BBR2..." - scripts/config --enable CONFIG_TCP_CONG_BBR2 - scripts/config --enable CONFIG_DEFAULT_BBR2 - scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2 - echo "Enable VHBA-Module" - scripts/config --module CONFIG_VHBA - # General Setup - scripts/config --disable CONFIG_BSD_PROCESS_ACCT - scripts/config --disable CONFIG_TASK_XACCT - scripts/config --enable CONFIG_PSI - scripts/config --disable CONFIG_MEMCG - scripts/config --enable CONFIG_CGROUP_CPUACCT - scripts/config --disable CONFIG_CGROUP_DEBUG - scripts/config --disable CONFIG_CHECKPOINT_RESTORE - scripts/config --disable CONFIG_SLAB_MERGE_DEFAULT - scripts/config --disable CONFIG_SLAB_FREELIST_HARDENED - scripts/config --disable CONFIG_SLUB_CPU_PARTIAL - scripts/config --disable CONFIG_PROFILING - - # Processor type and features - scripts/config --disable CONFIG_X86_5LEVEL - scripts/config --disable CONFIG_KEXEC - scripts/config --disable CONFIG_KEXEC_FILE - scripts/config --disable CONFIG_CRASH_DUMPs - scripts/config --disable CONFIG_KPROBES - # Kernel hacking - scripts/config --disable CONFIG_FTRACE - scripts/config --disable CONFIG_DEBUG_KERNEL - scripts/config --disable CONFIG_PAGE_EXTENSION - scripts/config --set-val CONFIG_RCU_CPU_STALL_TIMEOUT 4 - scripts/config --disable CONFIG_PRINTK_TIME - scripts/config --disable CONFIG_DEBUG_INFO - scripts/config --disable CONFIG_ENABLE_MUST_CHECK - scripts/config --disable CONFIG_STRIP_ASM_SYMS - scripts/config --disable CONFIG_UNUSED_SYMBOLS - scripts/config --disable CONFIG_DEBUG_FS - scripts/config --disable CONFIG_OPTIMIZE_INLINING - scripts/config --disable CONFIG_DEBUG_SECTION_MISMATCH - scripts/config --disable CONFIG_SECTION_MISMATCH_WARN_ONLY - scripts/config --disable CONFIG_STACK_VALIDATION - scripts/config --disable CONFIG_DEBUG_FORCE_WEAK_PER_CPU - scripts/config --disable CONFIG_MAGIC_SYSRQ - scripts/config --disable CONFIG_MAGIC_SYSRQ_SERIAL - scripts/config --disable CONFIG_PAGE_EXTENSION - scripts/config --disable CONFIG_DEBUG_PAGEALLOC - scripts/config --disable CONFIG_PAGE_OWNER - scripts/config --disable CONFIG_DEBUG_MEMORY_INIT - scripts/config --disable CONFIG_HARDLOCKUP_DETECTOR - scripts/config --disable CONFIG_SOFTLOCKUP_DETECTOR - scripts/config --disable CONFIG_DETECT_HUNG_TASK - scripts/config --disable CONFIG_WQ_WATCHDOG - scripts/config --set-val CONFIG_PANIC_TIMEOUT 10 + + ### Enable Linux Random Number Generator + if [ -n "$_lrng_enable" ]; then + echo "Enabling Linux Random Number Generator ..." + scripts/config --enable CONFIG_LRNG + scripts/config --disable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES + scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED + scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED + scripts/config --disable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION + scripts/config --set-val CONFIG_LRNG_COLLECTION_SIZE 1024 + scripts/config --disable CONFIG_LRNG_HEALTH_TESTS + scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256 + scripts/config --disable CONFIG_LRNG_JENT + scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16 + scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 + scripts/config --disable CONFIG_LRNG_DRNG_SWITCH + scripts/config --disable CONFIG_LRNG_DRBG + scripts/config --disable CONFIG_LRNG_TESTING_MENU + scripts/config --disable CONFIG_LRNG_SELFTEST + fi + + ### Enable SECURITY_FORK_BRUTE + if [ -n "$_fork_brute" ]; then + echo "Enabling SECURITY_FORK_BRUTE..." + scripts/config --enable CONFIG_SECURITY_FORK_BRUTE + scripts/config --set-str CONFIG_LSM lockdown,yama,brute + fi + + ### Enabling ZSTD COMPRESSION ## + echo "Set module compression to ZSTD" + scripts/config --enable CONFIG_MODULE_COMPRESS + scripts/config --disable CONFIG_MODULE_COMPRESS_XZ + scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD + scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 + scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA + + ### Enabling Cacule-Config ## + echo "Enable CacULE CPU scheduler..." + scripts/config --enable CONFIG_CACULE_SCHED + scripts/config --enable CONFIG_CACULE_RDB + scripts/config --set-val CONFIG_RDB_INTERVAL 19 + scripts/config --disable CONFIG_RDB_TASKS_GROUP + scripts/config --disable CONFIG_FAIR_GROUP_SCHED + scripts/config --disable CONFIG_SCHED_AUTOGROUP + scripts/config --disable CONFIG_EXPERT + scripts/config --disable CONFIG_SCHED_DEBUG + scripts/config --disable CONFIG_SCHED_INFO scripts/config --disable CONFIG_SCHEDSTATS - scripts/config --disable CONFIG_SCHED_STACK_END_CHECK - scripts/config --disable CONFIG_STACKTRACE - scripts/config --disable CONFIG_DEBUG_BUGVERBOSE - scripts/config --disable CONFIG_RCU_TRACE - scripts/config --disable CONFIG_FAULT_INJECTION - scripts/config --disable CONFIG_LATENCYTOP - scripts/config --disable CONFIG_PROVIDE_OHCI1394_DMA_INIT - scripts/config --disable RUNTIME_TESTING_MENU - scripts/config --disable CONFIG_MEMTEST - scripts/config --disable CONFIG_KGDB - scripts/config --disable CONFIG_EARLY_PRINTK - scripts/config --disable CONFIG_DOUBLEFAULT - - - ### Optionally use running kernel's config - # code originally by nous; http://aur.archlinux.org/packages.php?ID=40191 - if [ -n "$_use_current" ]; then - if [[ -s /proc/config.gz ]]; then - echo "Extracting config from /proc/config.gz..." - # modprobe configs - zcat /proc/config.gz > ./.config - else - warning "Your kernel was not compiled with IKCONFIG_PROC!" - warning "You cannot read the current config!" - warning "Aborting!" - exit - fi - fi - - ### Optionally load needed modules for the make localmodconfig - # See https://aur.archlinux.org/packages/modprobed-db - if [ -n "$_localmodcfg" ]; then - if [ -e $HOME/.config/modprobed.db ]; then - echo "Running Steven Rostedt's make localmodconfig now" - make LSMOD=$HOME/.config/modprobed.db localmodconfig - else - echo "No modprobed.db data found" - exit - fi - fi + scripts/config --disable CONFIG_DEBUG_KERNEL +# scripts/config --disable CONFIG_RT_GROUP_SCHED + echo "Enabling Full Tickless" + scripts/config --disable CONFIG_HZ_PERIODIC + scripts/config --disable CONFIG_NO_HZ_IDLE + scripts/config --disable CONFIG_NO_HZ_FULL + scripts/config --enable CONFIG_NO_HZ + scripts/config --enable CONFIG_NO_HZ_COMMON + scripts/config --disable CONFIG_CONTEXT_TRACKING + scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE + echo "Enabling KBUILD_CFLAGS -O3..." + scripts/config --disable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE + scripts/config --enable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 + echo "Enable PREEMPT" + scripts/config --disable CONFIG_PREEMPT_NONE + scripts/config --disable CONFIG_PREEMPT_VOLUNTARY + scripts/config --enable CONFIG_PREEMPT + scripts/config --enable CONFIG_PREEMPT_COUNT + scripts/config --enable CONFIG_PREEMPTION + scripts/config --enable CONFIG_PREEMPT_DYNAMIC + echo "Enable NTFS3" + scripts/config --module CONFIG_NTFS_FS + scripts/config --enable CONFIG_NTFS_RW + scripts/config --enable CONFIG_NTFS_DEBUG + scripts/config --module CONFIG_NTFS3_FS + scripts/config --enable CONFIG_NTFS3_64BIT_CLUSTER + scripts/config --enable CONFIG_NTFS3_LZX_XPRESS + scripts/config --enable CONFIG_NTFS3_FS_POSIX_ACL + echo "Enable Anbox" + scripts/config --module CONFIG_ASHMEM + scripts/config --enable CONFIG_ANDROID_BINDER_IPC_SELFTEST + scripts/config --enable CONFIG_ANDROID + scripts/config --enable CONFIG_ANDROID_BINDER_IPC + scripts/config --enable CONFIG_ANDROID_BINDERFS + scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES binder,hwbinder,vndbinder + echo "Disabling TCP_CONG_CUBIC..." + scripts/config --module CONFIG_TCP_CONG_CUBIC + scripts/config --disable CONFIG_DEFAULT_CUBIC + echo "Enabling TCP_CONG_BBR2..." + scripts/config --enable CONFIG_TCP_CONG_BBR2 + scripts/config --enable CONFIG_DEFAULT_BBR2 + scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2 + echo "Enable VHBA-Module" + scripts/config --module CONFIG_VHBA + # General Setup + scripts/config --disable CONFIG_BSD_PROCESS_ACCT + scripts/config --disable CONFIG_TASK_XACCT + scripts/config --enable CONFIG_PSI + scripts/config --disable CONFIG_MEMCG + scripts/config --enable CONFIG_CGROUP_CPUACCT + scripts/config --disable CONFIG_CGROUP_DEBUG + scripts/config --disable CONFIG_CHECKPOINT_RESTORE + scripts/config --disable CONFIG_SLAB_MERGE_DEFAULT + scripts/config --disable CONFIG_SLAB_FREELIST_HARDENED + scripts/config --disable CONFIG_SLUB_CPU_PARTIAL + scripts/config --disable CONFIG_PROFILING + + # Processor type and features + scripts/config --disable CONFIG_X86_5LEVEL + scripts/config --disable CONFIG_KEXEC + scripts/config --disable CONFIG_KEXEC_FILE + scripts/config --disable CONFIG_CRASH_DUMPs + scripts/config --disable CONFIG_KPROBES + # Kernel hacking + scripts/config --disable CONFIG_FTRACE + scripts/config --disable CONFIG_DEBUG_KERNEL + scripts/config --disable CONFIG_PAGE_EXTENSION + scripts/config --set-val CONFIG_RCU_CPU_STALL_TIMEOUT 4 + scripts/config --disable CONFIG_PRINTK_TIME + scripts/config --disable CONFIG_DEBUG_INFO + scripts/config --disable CONFIG_ENABLE_MUST_CHECK + scripts/config --disable CONFIG_STRIP_ASM_SYMS + scripts/config --disable CONFIG_UNUSED_SYMBOLS + scripts/config --disable CONFIG_DEBUG_FS + scripts/config --disable CONFIG_OPTIMIZE_INLINING + scripts/config --disable CONFIG_DEBUG_SECTION_MISMATCH + scripts/config --disable CONFIG_SECTION_MISMATCH_WARN_ONLY + scripts/config --disable CONFIG_STACK_VALIDATION + scripts/config --disable CONFIG_DEBUG_FORCE_WEAK_PER_CPU + scripts/config --disable CONFIG_MAGIC_SYSRQ + scripts/config --disable CONFIG_MAGIC_SYSRQ_SERIAL + scripts/config --disable CONFIG_PAGE_EXTENSION + scripts/config --disable CONFIG_DEBUG_PAGEALLOC + scripts/config --disable CONFIG_PAGE_OWNER + scripts/config --disable CONFIG_DEBUG_MEMORY_INIT + scripts/config --disable CONFIG_HARDLOCKUP_DETECTOR + scripts/config --disable CONFIG_SOFTLOCKUP_DETECTOR + scripts/config --disable CONFIG_DETECT_HUNG_TASK + scripts/config --disable CONFIG_WQ_WATCHDOG + scripts/config --set-val CONFIG_PANIC_TIMEOUT 10 + scripts/config --disable CONFIG_SCHEDSTATS + scripts/config --disable CONFIG_SCHED_STACK_END_CHECK + scripts/config --disable CONFIG_STACKTRACE + scripts/config --disable CONFIG_DEBUG_BUGVERBOSE + scripts/config --disable CONFIG_RCU_TRACE + scripts/config --disable CONFIG_FAULT_INJECTION + scripts/config --disable CONFIG_LATENCYTOP + scripts/config --disable CONFIG_PROVIDE_OHCI1394_DMA_INIT + scripts/config --disable RUNTIME_TESTING_MENU + scripts/config --disable CONFIG_MEMTEST + scripts/config --disable CONFIG_KGDB + scripts/config --disable CONFIG_EARLY_PRINTK + scripts/config --disable CONFIG_DOUBLEFAULT + + + ### Optionally use running kernel's config + # code originally by nous; http://aur.archlinux.org/packages.php?ID=40191 + if [ -n "$_use_current" ]; then + if [[ -s /proc/config.gz ]]; then + echo "Extracting config from /proc/config.gz..." + # modprobe configs + zcat /proc/config.gz > ./.config + else + warning "Your kernel was not compiled with IKCONFIG_PROC!" + warning "You cannot read the current config!" + warning "Aborting!" + exit + fi + fi + + ### Optionally load needed modules for the make localmodconfig + # See https://aur.archlinux.org/packages/modprobed-db + if [ -n "$_localmodcfg" ]; then + if [ -e $HOME/.config/modprobed.db ]; then + echo "Running Steven Rostedt's make localmodconfig now" + make LSMOD=$HOME/.config/modprobed.db localmodconfig + else + echo "No modprobed.db data found" + exit + fi + fi + + + make ${BUILD_FLAGS[*]} -s kernelrelease >version + echo "Prepared ${pkgbase} version $(<version)" - make ${BUILD_FLAGS[*]} -s kernelrelease > version - echo "Prepared $pkgbase version $(<version)" [[ -z "$_makenconfig" ]] || make nconfig - ### Save configuration for later reuse + ## Save configuration for later reuse cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}" -} + } build() { - cd $_srcname - make ${BUILD_FLAGS[*]} all + + cd "${srcdir:?}/linux-${pkgver}" || ( + echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Build failed! \E[0m" + exit 1 + ) + + make ${BUILD_FLAGS[*]} all + } -_package() { - pkgdesc="The $pkgdesc kernel and modules" - depends=('coreutils' 'kmod' 'initramfs') - optdepends=('crda: to set the correct wireless channels of your country' - 'linux-firmware: firmware images needed for some devices' - 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig') - provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) +package_linux-cacule-rdb-llvm() { - cd $_srcname + pkgdesc="The ${pkgdesc} and modules" + depends=(coreutils kmod initramfs) + optdepends=('crda: to set the correct wireless channels of your country' + 'linux-firmware: firmware images needed for some devices') + provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) + replaces=(virtualbox-guest-modules-arch wireguard-arch) - local kernver="$(<version)" - local modulesdir="$pkgdir/usr/lib/modules/$kernver" + cd "${srcdir:?}/linux-${pkgver}" || ( + echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux kernel failed! \E[0m" + exit 1 + ) - echo "Installing boot image..." - # systemd expects to find the kernel here to allow hibernation - # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 - install -Dm644 "$(make ${BUILD_FLAGS[*]} -s image_name)" "$modulesdir/vmlinuz" + local kernver="$(<version)" + local modulesdir="${pkgdir:?}/usr/lib/modules/$kernver" - # Used by mkinitcpio to name the kernel - echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" + echo "Installing boot image..." + # systemd expects to find the kernel here to allow hibernation + # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 + install -Dm644 "$(make -s image_name)" "${modulesdir}/vmlinuz" - echo "Installing modules..." - make INSTALL_MOD_PATH="$pkgdir/usr" modules_install + # Used by mkinitcpio to name the kernel + echo "${pkgbase}" | install -Dm644 /dev/stdin "${modulesdir}/pkgbase" - # remove build and source links - rm "$modulesdir"/{source,build} -} + echo "Installing modules..." + make INSTALL_MOD_PATH="${pkgdir:?}/usr" INSTALL_MOD_STRIP=1 modules_install + + # remove build and source links + rm "${modulesdir}/"{source,build} -_package-headers() { - pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel" - - cd ${_srcname} - local builddir="$pkgdir/usr/lib/modules/$(<version)/build" - - echo "Installing build files..." - install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ - localversion.* version vmlinux - install -Dt "$builddir/kernel" -m644 kernel/Makefile - install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile - cp -t "$builddir" -a scripts - - # add objtool for external module building and enabled VALIDATION_STACK option - install -Dt "$builddir/tools/objtool" tools/objtool/objtool - - # add xfs and shmem for aufs building - mkdir -p "$builddir"/{fs/xfs,mm} - - echo "Installing headers..." - cp -t "$builddir" -a include - cp -t "$builddir/arch/x86" -a arch/x86/include - install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s - - install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h - install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h - - # http://bugs.archlinux.org/task/13146 - install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h - - # http://bugs.archlinux.org/task/20402 - install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h - install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h - install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h - - echo "Installing KConfig files..." - find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; - - echo "Removing unneeded architectures..." - local arch - for arch in "$builddir"/arch/*/; do - [[ $arch = */x86/ ]] && continue - echo "Removing $(basename "$arch")" - rm -r "$arch" - done - - echo "Removing documentation..." - rm -r "$builddir/Documentation" - - echo "Removing broken symlinks..." - find -L "$builddir" -type l -printf 'Removing %P\n' -delete - - echo "Removing loose objects..." - find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete - - echo "Stripping build tools..." - local file - while read -rd '' file; do - case "$(file -bi "$file")" in - application/x-sharedlib\;*) # Libraries (.so) - strip -v $STRIP_SHARED "$file" ;; - application/x-archive\;*) # Libraries (.a) - strip -v $STRIP_STATIC "$file" ;; - application/x-executable\;*) # Binaries - strip -v $STRIP_BINARIES "$file" ;; - application/x-pie-executable\;*) # Relocatable binaries - strip -v $STRIP_SHARED "$file" ;; - esac - done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) - - echo "Adding symlink..." - mkdir -p "$pkgdir/usr/src" - ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase" } -pkgname=("$pkgbase" "$pkgbase-headers") -for _p in "${pkgname[@]}"; do - eval "package_$_p() { - $(declare -f "_package${_p#$pkgbase}") - _package${_p#$pkgbase} - }" -done - -md5sums=('76c60fb304510a7bbd9c838790bc5fe4' - 'aebc49e4d58bd8314548a364bec99d1e' - 'c50a188eeb6b247d938ef67d261c2748' - '9bb46b8ce45259c238c5233b8394d70b' - '9a21e2d2754f31c0a9c2215712025b14' - '7640a753a7803248543675a6edc75e08' - '85f4be6562ee033b83814353a12b61bd' - '2c0375b3cc9690a0f0f3d3e49df54d10' - '9573b92353399343db8a691c9b208300' - '1217799f33d6ba822152a0e2fb6f2e34' - '31c897f53b91f98532321cd24928c0d7' - 'daeacee8fcde31908f90b89dc4b54126' - '4f9e72e7edb909da5cd650afe13aadb6' - '9bbbd88f0303ccd59064648eaaf80edd' - '1bd37d8e71b2a7aae8ebd2853a08f445' - '65a4399a10b2abd0f327145d479db12d' - '81f27f12e20971c7d7fc3a53ffb6842c' - 'f9b3c2263204ebfae89f29b83278b54b' - '9c0260e17db69e024a4838c4617c9f10' - '86825a0c5716a1d9c6a39f9d3886b1bf' - '2b2be59407dd342f1cea80602a93b6c0' - '9977ba0e159416108217a45438ebebb4' - 'c68e4fd9b4a55ee730a34bb39ae325ad' - '92e9db1a7777666a1e6353b4760f1275' - '9e5114dba6da65e8d444aa225b109a21' - '7dd37a74d7926f4c5ae3b3f76d7172a2' - 'ef7748efcae55f7db8961227cbae3677') +package_linux-cacule-rdb-llvm-headers() { + + pkgdesc="Headers and scripts for building modules for the ${pkgdesc}" + depends=("linux-cacule-rdb-llvm=${pkgver}" pahole) + + cd "${srcdir:?}/linux-${pkgver}" || ( + echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux headers failed! \E[0m" + exit 1 + ) + + local builddir="${pkgdir:?}/usr/lib/modules/$(<version)/build" + + echo "Installing build files..." + install -Dt "${builddir}" -m644 .config Makefile Module.symvers System.map \ + localversion.* version vmlinux + install -Dt "${builddir}/kernel" -m644 kernel/Makefile + install -Dt "${builddir}/arch/x86" -m644 arch/x86/Makefile + cp -t "${builddir}" -a scripts + + # add objtool for external module building and enabled VALIDATION_STACK option + install -Dt "${builddir}/tools/objtool" tools/objtool/objtool + + # add xfs and shmem for aufs building + mkdir -p "${builddir}"/{fs/xfs,mm} + + echo "Installing headers..." + cp -t "${builddir}" -a include + cp -t "${builddir}/arch/x86" -a arch/x86/include + install -Dt "${builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s + + install -Dt "${builddir}/drivers/md" -m644 drivers/md/*.h + install -Dt "${builddir}/net/mac80211" -m644 net/mac80211/*.h + + # https://bugs.archlinux.org/task/13146 + install -Dt "${builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h + + # https://bugs.archlinux.org/task/20402 + install -Dt "${builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h + install -Dt "${builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h + install -Dt "${builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h + + # https://bugs.archlinux.org/task/71392 + install -Dt "${builddir}/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h + + echo "Installing KConfig files..." + find . -name 'Kconfig*' -exec install -Dm644 {} "${builddir}/{}" \; + + echo "Removing unneeded architectures..." + local arch + for arch in "${builddir}"/arch/*/; do + [[ $arch = */x86/ ]] && continue + echo "Removing $(basename "$arch")" + rm -r "$arch" + done + + echo "Removing documentation..." + rm -r "${builddir}/Documentation" + + echo "Removing broken symlinks..." + find -L "${builddir}" -type l -printf 'Removing %P\n' -delete + + echo "Removing loose objects..." + find "${builddir}" -type f -name '*.o' -printf 'Removing %P\n' -delete + + echo "Stripping build tools..." + local file + while read -rd '' file; do + case "$(file -bi "$file")" in + application/x-sharedlib\;*) # Libraries (.so) + strip -v "${STRIP_SHARED}" "$file" ;; + application/x-archive\;*) # Libraries (.a) + strip -v "${STRIP_STATIC}" "$file" ;; + application/x-executable\;*) # Binaries + strip -v "${STRIP_BINARIES}" "$file" ;; + application/x-pie-executable\;*) # Relocatable binaries + strip -v "${STRIP_SHARED}" "$file" ;; + esac + done < <(find "${builddir}" -type f -perm -u+x ! -name vmlinux -print0) + + echo "Stripping vmlinux..." + strip -v "${STRIP_STATIC}" "${builddir}/vmlinux" + + echo "Adding symlink..." + mkdir -p "${pkgdir:?}/usr/src" + ln -sr "${builddir}" "${pkgdir:?}/usr/src/${pkgbase}" + +} |