Commit 171bf1c3 authored by Seblu's avatar Seblu
Browse files

Build kernel with LLVM

parent c9f8f1b4
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -9,16 +9,19 @@ arch=('x86_64')
license=('GPL2')
url='http://www.kernel.org'
options=('!strip' '!buildflags')
makedepends=('glibc' 'libelf' 'kmod' 'git' 'make' 'gcc' 'bc' 'sed' 'cpio'
makedepends=('llvm' 'clang' 'lld' 'libelf' 'kmod' 'git' 'make' 'bc' 'sed' 'cpio'
  'python')
depends=('linux-firmware' 'kernel-install-hook')
optdepends=(
  'linux-firmware: linux firmwares'
  'kernel-install-hook: systemd installation helpers'
)
install=linux-seblu.install
_main=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
_stable=https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
source=("git+$_main#tag=v5.12"
        "config.$CARCH")
sha256sums=('SKIP'
            'c1441f0291008d1a00ffd30dc6f34574923aa8a8e8decf9abd28251590bef121')
            '76b6967cbf841a05f3df3b664e1b9ab143a18a51939a88208dfe9af6872e548f')

prepare() {
  [[ -d linux-stable ]] && ln -snf linux-stable linux
@@ -63,13 +66,13 @@ build() {
  cd linux

  msg2 'Make prepare'
  make prepare
  make LLVM=1 prepare

  msg2 'Make bzImage'
  make bzImage
  make LLVM=1 bzImage

  msg2 'Make modules'
  make modules
  make LLVM=1 modules
}

package() {
+15 −14
Original line number Diff line number Diff line
@@ -2,16 +2,18 @@
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.12.0 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100200
CONFIG_CLANG_VERSION=0
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23501
CONFIG_LLD_VERSION=0
CONFIG_CC_VERSION_TEXT="clang version 11.1.0"
CONFIG_GCC_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=110100
CONFIG_LD_VERSION=0
CONFIG_LD_IS_LLD=y
CONFIG_LLD_VERSION=110100
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
@@ -841,9 +843,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling

CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
# end of General architecture-dependent options

CONFIG_RT_MUTEXES=y
@@ -7461,11 +7460,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor"
#
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_NONE=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
# CONFIG_INIT_STACK_ALL_ZERO is not set
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
# end of Memory initialization
@@ -7921,6 +7920,7 @@ CONFIG_HAVE_ARCH_KGDB=y
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments

# CONFIG_DEBUG_KERNEL is not set
@@ -7945,6 +7945,7 @@ CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_KASAN_SW_TAGS=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
CONFIG_HAVE_ARCH_KFENCE=y
+2 −2
Original line number Diff line number Diff line
@@ -9,11 +9,11 @@ config_equal()
}

if config_equal; then
	(cd "$SRC" && make menuconfig)
	(cd "$SRC" && make LLVM=1 menuconfig)
else
	[[ -e "$SRC" ]] && rm -rf "$SRC"
	makepkg --nobuild --force
	(cd "$SRC" && make oldconfig)
	(cd "$SRC" && make LLVM=1 oldconfig)
fi

if ! config_equal; then