Compare commits

...
Author SHA1 Message Date
Aster Boese 63a90939d3 compile a 4.x kernel 2025-02-21 23:15:59 -05:00
Aster Boese 9661505e7b compile a 3.x kernel 2025-02-21 23:15:44 -05:00
8 changed files with 184 additions and 22 deletions

No files matched your search

@@ -0,0 +1,27 @@
From 4d735839552d21d17f8d7d0ce6844034e4327b9d Mon Sep 17 00:00:00 2001
From: SoundDrill31 <84176052+sounddrill31@users.noreply.github.com>
Date: Sun, 9 Jun 2024 21:12:32 +0530
Subject: [PATCH] kbuild: fix asm-offset generation to work with clang As
suggested here
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/issues/2469#issuecomment-1583842583
---
include/linux/kbuild.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h
index 22a72198c14b..def34fd99cb3 100644
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,9 +2,9 @@
#define __LINUX_KBUILD_H
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
-#define BLANK() asm volatile("\n->" : : )
+#define BLANK() asm volatile("\n.ascii \"->\"" : : )
#define OFFSET(sym, str, mem) \
DEFINE(sym, offsetof(struct str, mem))
@@ -0,0 +1,102 @@
From c325d37ad9df1a0d1c5a16a12484590a45bfc0fa Mon Sep 17 00:00:00 2001
From: Aster Boese <asterboese@mailbox.org>
Date: Fri, 14 Feb 2025 00:30:05 -0500
Subject: [PATCH] fix register sp unsuitable
---
arch/arm64/include/asm/thread_info.h | 34 ++++------------------------
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
index 855e07a7..720e70b6 100644
--- a/arch/arm64/include/asm/thread_info.h
+++ b/arch/arm64/include/asm/thread_info.h
@@ -51,8 +51,6 @@ struct thread_info {
struct restart_block restart_block;
int preempt_count; /* 0 => preemptable, <0 => bug */
int cpu; /* cpu */
- void *regs_on_excp;
- int cpu_excp;
};
#define INIT_THREAD_INFO(tsk) \
@@ -65,17 +63,11 @@ struct thread_info {
.restart_block = { \
.fn = do_no_restart_syscall, \
}, \
- .cpu_excp = 0, \
}
#define init_thread_info (init_thread_union.thread_info)
#define init_stack (init_thread_union.stack)
-/*
- * how to get the current stack pointer from C
- */
-register unsigned long current_stack_pointer asm ("sp");
-
/*
* how to get the thread information struct from C
*/
@@ -83,8 +75,8 @@ static inline struct thread_info *current_thread_info(void) __attribute_const__;
static inline struct thread_info *current_thread_info(void)
{
- return (struct thread_info *)
- (current_stack_pointer & ~(THREAD_SIZE - 1));
+ register unsigned long sp asm ("sp");
+ return (struct thread_info *)(sp & ~(THREAD_SIZE - 1));
}
#define thread_saved_pc(tsk) \
@@ -99,23 +91,17 @@ static inline struct thread_info *current_thread_info(void)
/*
* thread information flags:
* TIF_SYSCALL_TRACE - syscall trace active
- * TIF_SYSCALL_TRACEPOINT - syscall tracepoint for ftrace
- * TIF_SYSCALL_AUDIT - syscall auditing
- * TIF_SECOMP - syscall secure computing
* TIF_SIGPENDING - signal pending
* TIF_NEED_RESCHED - rescheduling necessary
* TIF_NOTIFY_RESUME - callback before returning to user
* TIF_USEDFPU - FPU was used by this task this quantum (SMP)
+ * TIF_POLLING_NRFLAG - true if poll_idle() is polling TIF_NEED_RESCHED
*/
#define TIF_SIGPENDING 0
#define TIF_NEED_RESCHED 1
#define TIF_NOTIFY_RESUME 2 /* callback before returning to user */
-#define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */
-#define TIF_NOHZ 7
#define TIF_SYSCALL_TRACE 8
-#define TIF_SYSCALL_AUDIT 9
-#define TIF_SYSCALL_TRACEPOINT 10
-#define TIF_SECCOMP 11
+#define TIF_POLLING_NRFLAG 16
#define TIF_MEMDIE 18 /* is terminating due to OOM killer */
#define TIF_FREEZE 19
#define TIF_RESTORE_SIGMASK 20
@@ -126,20 +112,10 @@ static inline struct thread_info *current_thread_info(void)
#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
-#define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE)
-#define _TIF_NOHZ (1 << TIF_NOHZ)
-#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
-#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
-#define _TIF_SECCOMP (1 << TIF_SECCOMP)
#define _TIF_32BIT (1 << TIF_32BIT)
#define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
- _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE)
-
-#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
- _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
- _TIF_NOHZ)
+ _TIF_NOTIFY_RESUME)
#endif /* __KERNEL__ */
#endif /* __ASM_THREAD_INFO_H */
--
2.48.1
@@ -0,0 +1,28 @@
From 17154cec67a5add459937be96fb9c76bda813fda Mon Sep 17 00:00:00 2001
From: Aster Boese <asterboese@mailbox.org>
Date: Fri, 21 Feb 2025 19:55:39 -0500
Subject: [PATCH] target aarch64 assembly with llvm on arm64
For some reason LLVM doesn't properly cross-compile on earlier kernel versions.
This patch explicitly tells it that it is targeting aarch64.
Taken from https://github.com/iovisor/bcc/issues/1202#issuecomment-333740246
---
arch/arm64/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 5d76c71c..b6adbe37 100755
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -21,6 +21,7 @@ KBUILD_DEFCONFIG := defconfig
KBUILD_CFLAGS += -mgeneral-regs-only
KBUILD_CFLAGS += -fno-pic
+KBUILD_CFLAGS += -target aarch64
ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
--
2.48.1
+19 -13
View File
@@ -16,14 +16,7 @@ _flavor="amazon-douglas"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="bash bc bison devicepkg-dev flex openssl-dev perl gcc6"
# Compiler: GCC 6
if [ "${CC:0:5}" != "gcc6-" ]; then
CC="gcc6-$CC"
HOSTCC="gcc6-gcc"
CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi
makedepends="bash bc bison clang devicepkg-dev flex lld llvm openssl-dev perl"
# Source
_repository="kernel_douglas"
@@ -34,7 +27,11 @@ source="
$_config
disable-sound.patch
gcc10-extern_YYLOC_global_declaration.patch
"
fix-asm-offset-generation-to-work-with-clang-As.patch
fix-register-sp-unsuitable.patch
linux3.7to4.5-ARM64-remove-Sun-Solaris-style-flag-on-section.patch
0001-target-aarch64-assembly-with-llvm-on-arm64.patch
"
builddir="$srcdir/$_repository-$_commit"
_outdir="out"
@@ -45,15 +42,24 @@ prepare() {
build() {
unset LDFLAGS
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
make O="$_outdir" ARCH="$_carch" \
CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \
OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump READELF=llvm-readelf \
HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar HOSTLD=ld.lld \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
}
sha512sums="eb3804fcbadb268429640a5171ea4788cf8974444a1aa1005801902dbce1c4d67d88cb43d0cee259dc082161a92b285de0a0d18d721220f6d2dff84a179a7dc5 linux-amazon-douglas-4ff2b5a4534e275748920ba4ad105af36495bf89.tar.gz
sha512sums="
eb3804fcbadb268429640a5171ea4788cf8974444a1aa1005801902dbce1c4d67d88cb43d0cee259dc082161a92b285de0a0d18d721220f6d2dff84a179a7dc5 linux-amazon-douglas-4ff2b5a4534e275748920ba4ad105af36495bf89.tar.gz
a5c13415c5133eb71a40a71dc84c8d4f3ded3cc11650e46bfb9ffba2c01490f5008e659407c5977bd62a83069af23740f36d7236f6dfee0c5adad6d831772122 config-amazon-douglas.aarch64
aed9fd018a6367214dd00aad9c376c93ed356efbd74e21b49316ab0a21bc372a2077eeed8810f66464544c5bbc7bca6c46985ef42e6cb8f95ad94a1644130d1c disable-sound.patch
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch"
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch
edec4f825dc1a88ff50957f7350d6b30b3713444addd3a82323343893bc58fdc5e08a5f8619a5955f21817cfc1798afb12285709b561ba6d145cd07fb1e384e5 fix-asm-offset-generation-to-work-with-clang-As.patch
47c7c7d73ab20f3b4d961cef8bab9206203f3913d5de034ab0181ac0d75f22125f9b5124a21012ff47ed7ce443fb4498b26f9f7ce6fe381bd885ce9d1c069c36 fix-register-sp-unsuitable.patch
75545ccd0082a119b9ad95fcef3523c939a5c946f8f3a5c3dde15cee1502f6c1011050a0ad5359426f018bb7ceea1c97a28c7665941bc89f365c8d11065ce0f6 linux3.7to4.5-ARM64-remove-Sun-Solaris-style-flag-on-section.patch
75d071d29ceedf17e2699e3f71cf1f4ba719d64ec329f0d2b7dfaf9961d7a9a5dd7e076c9bc01dd47ba2186957993d8bc65a5faa87b7c7e641893ee3cb0a6958 0001-target-aarch64-assembly-with-llvm-on-arm64.patch
"
@@ -0,0 +1 @@
../../.shared-patches/linux/fix-asm-offset-generation-to-work-with-clang-As.patch
@@ -0,0 +1 @@
../../.shared-patches/linux/fix-register-sp-unsuitable.patch
@@ -0,0 +1 @@
../../.shared-patches/linux/linux3.7to4.5-ARM64-remove-Sun-Solaris-style-flag-on-section.patch
+5 -9
View File
@@ -11,14 +11,7 @@ _flavor="samsung-a20"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="bash bc bison devicepkg-dev flex openssl-dev perl gcc6"
# Compiler: GCC 6 (doesn't boot when compiled with newer versions)
if [ "${CC:0:5}" != "gcc6-" ]; then
CC="gcc6-$CC"
HOSTCC="gcc6-gcc"
CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi
makedepends="bash bc bison clang devicepkg-dev flex lld llvm openssl-dev perl python3"
# Source
_repository="kernel_samsung_a20"
@@ -38,7 +31,10 @@ prepare() {
build() {
unset LDFLAGS
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
make O="$_outdir" ARCH="$_carch" \
CC=clang AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \
OBJDUMP=llvm-objdump READELF=llvm-readelf \
HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}