1
0
Fork 0

Compare commits

...

2 Commits

Author SHA1 Message Date
Pratham Patel be6285acce
reorder config 2024-04-23 07:24:32 +05:30
Pratham Patel 61ec9b1e7c
"modularze" config 2024-04-23 07:20:30 +05:30
1 changed files with 51 additions and 41 deletions

View File

@ -67,40 +67,38 @@ function setup_rust_toolchain() {
function modify_kernel_config() { function modify_kernel_config() {
# start with a "useful" base config # start with a "useful" base config
make olddefconfig make olddefconfig
CUSTOM_CONFIG=()
# "de-branding" and "re-branding"
DEBRAND_CONFIG=(
'--disable CONFIG_LOCALVERSION_AUTO'
'--set-str CONFIG_BUILD_SALT'
"--set-str CONFIG_LOCALVERSION ${KERNEL_LOCALVERSION}"
)
# built-in kernel config+headers # built-in kernel config+headers
CUSTOM_CONFIG+=( IK_CONFIG=(
'--enable CONFIG_IKCONFIG' '--enable CONFIG_IKCONFIG'
'--enable CONFIG_IKCONFIG_PROC' '--enable CONFIG_IKCONFIG_PROC'
'--enable CONFIG_IKHEADERS' '--enable CONFIG_IKHEADERS'
) )
# defconfig does not enable these # defconfig does not enable these
CUSTOM_CONFIG+=( DEFCONFIG_ADD_ONS=(
'--module CONFIG_XFS_FS' '--module CONFIG_XFS_FS'
'--module CONFIG_ZRAM' '--module CONFIG_ZRAM'
) )
# "de-branding" and "re-branding"
CUSTOM_CONFIG+=(
'--disable CONFIG_LOCALVERSION_AUTO'
'--set-str CONFIG_BUILD_SALT'
"--set-str CONFIG_LOCALVERSION ${KERNEL_LOCALVERSION}"
)
# no need to have these keys, not a prod kernel # no need to have these keys, not a prod kernel
CUSTOM_CONFIG+=( SIGNING_REMOVAL=(
'--disable CONFIG_SYSTEM_REVOCATION_LIST' '--disable CONFIG_SYSTEM_REVOCATION_LIST'
'--set-str CONFIG_SYSTEM_TRUSTED_KEYS' '--set-str CONFIG_SYSTEM_TRUSTED_KEYS'
) )
if grep -q 'debian' /etc/os-release; then if grep -q 'debian' /etc/os-release; then
CUSTOM_CONFIG+=( SIGNING_REMOVAL+=(
'--set-str CONFIG_SYSTEM_REVOCATION_KEYS' '--set-str CONFIG_SYSTEM_REVOCATION_KEYS'
) )
elif grep -q 'fedora' /etc/os-release; then elif grep -q 'fedora' /etc/os-release; then
CUSTOM_CONFIG+=( SIGNING_REMOVAL+=(
#'--disable CONFIG_MODULE_SIG' #'--disable CONFIG_MODULE_SIG'
'--disable CONFIG_MODULE_SIG_ALL' '--disable CONFIG_MODULE_SIG_ALL'
'--set-str CONFIG_MODULE_SIG_KEY' '--set-str CONFIG_MODULE_SIG_KEY'
@ -110,12 +108,38 @@ function modify_kernel_config() {
# disable AEGIS-128 (ARM{,64} NEON}) # disable AEGIS-128 (ARM{,64} NEON})
# https://github.com/NixOS/nixpkgs/issues/74744 # https://github.com/NixOS/nixpkgs/issues/74744
# plus, this kernel won't run in "prod", so this isn't even a "nice to have" # plus, this kernel won't run in "prod", so this isn't even a "nice to have"
CUSTOM_CONFIG+=( ARM_SIMD_DISABLE=(
'--disable CONFIG_CRYPTO_AEGIS128_SIMD' '--disable CONFIG_CRYPTO_AEGIS128_SIMD'
) )
if [[ "${BUILD_WITH_RUST:-0}" == '1' ]] && [[ "${LLVM:-0}" == '1' ]]; then
setup_rust_toolchain
make rustavailable
RUST_CONFIG=(
'--enable CONFIG_RUST'
'--enable CONFIG_RUST_OVERFLOW_CHECKS'
'--enable CONFIG_RUST_BUILD_ASSERT_ALLOW'
)
else
# shellcheck disable=SC2016
echo 'WARNING: $BUILD_WITH_RUST or $LLVM is unset, not building with Rust'
fi
# sched_ext
if [[ -n "${COMPILING_SCHED_EXT:-}" ]]; then
SCHED_EXT_CONFIG=(
'--disable CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT'
'--enable CONFIG_DEBUG_INFO_DWARF5'
'--enable CONFIG_PAHOLE_HAS_BTF_TAG'
'--enable CONFIG_SCHED_CLASS_EXT'
)
else
SCHED_EXT_CONFIG=()
fi
# debug options # debug options
CUSTOM_CONFIG+=( DEBUG_CONFIG=(
'--enable CONFIG_ARCH_WANT_FRAME_POINTERS' '--enable CONFIG_ARCH_WANT_FRAME_POINTERS'
'--enable CONFIG_DEBUG_BUGVERBOSE' '--enable CONFIG_DEBUG_BUGVERBOSE'
'--enable CONFIG_DEBUG_DRIVER' '--enable CONFIG_DEBUG_DRIVER'
@ -144,35 +168,21 @@ function modify_kernel_config() {
'--enable CONFIG_UBSAN' '--enable CONFIG_UBSAN'
) )
if [[ "$(uname -m)" == 'x86_64' ]]; then if [[ "$(uname -m)" == 'x86_64' ]]; then
CUSTOM_CONFIG+=( DEBUG_CONFIG+=(
'--enable CONFIG_STACK_VALIDATION' '--enable CONFIG_STACK_VALIDATION'
) )
fi fi
# sched_ext CUSTOM_CONFIG=(
if [[ -n "${COMPILING_SCHED_EXT:-}" ]]; then "${DEBRAND_CONFIG[@]}"
CUSTOM_CONFIG+=( "${IK_CONFIG[@]}"
'--disable CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT' "${DEFCONFIG_ADD_ONS[@]}"
'--enable CONFIG_DEBUG_INFO_DWARF5' "${SIGNING_REMOVAL[@]}"
'--enable CONFIG_PAHOLE_HAS_BTF_TAG' "${ARM_SIMD_DISABLE[@]}"
'--enable CONFIG_SCHED_CLASS_EXT' "${RUST_CONFIG[@]}"
) "${SCHED_EXT_CONFIG[@]}"
fi "${DEBUG_CONFIG[@]}"
)
if [[ "${BUILD_WITH_RUST:-0}" == '1' ]] && [[ "${LLVM:-0}" == '1' ]]; then
setup_rust_toolchain
make rustavailable
CUSTOM_CONFIG+=(
'--enable CONFIG_RUST'
'--enable CONFIG_RUST_OVERFLOW_CHECKS'
'--enable CONFIG_RUST_BUILD_ASSERT_ALLOW'
)
else
# shellcheck disable=SC2016
echo 'WARNING: $BUILD_WITH_RUST or $LLVM is unset, not building with Rust'
fi
kconfigure "${CUSTOM_CONFIG[@]}" kconfigure "${CUSTOM_CONFIG[@]}"
} }